jjzjj

mongoose

全部标签

node.js - 无法调试 Mongoose find() : neither err nor success

我是一名Mongoose新手,正在从事一个协作Node项目,我将在开发周期后期进行。我有一个模型SourceContentType/***sourceContentTypemodel*@module*/varmodelFactory=require('app/factories/model');varnameMethods=require('./methods/name');/***ThismodelwillrelatedcontentTypestosourcesandwhendocumentsarecreatedforit,*theywillimplythatitemsfortheg

javascript - 如何在 mongodb 中将 $push 、 $set 和 $inc 放在一起?

基本上,我在mongodb中使用环回,并希望同时推送数据、设置数据和递增数据并获得最终结果。为此我尝试了这个。db.invoice.findOneAndUpdate({_id:ObjectId(req.params.id)},{$push:{payment:paymentData},$set:{payment_status:true,updated_at:newDate()},$inc:{total_amount_paid:paidAmt}},function(err,doc){if(err){returnnewError(err);}else{if(doc.result.n>0){s

node.js - 使用 populate 查询两个模式

所以我有两个模式,一个PoemRegistrations和另一个CompetitionResults我想在一个页面中呈现这两种形式。当我呈现大部分PoemRegistrations字段和一个CompetitionResults时,我试图填充PoemRegistrations以从CompetitionResultswinnersName字段中提取数据,但我遇到了一些问题。这是我到目前为止尝试过的方法。架构winnersName:[{type:mongoose.Schema.Types.ObjectId,ref:'CompetitionResults'}],在我目前正在尝试的路线上rout

javascript - 如何更新 Mongoose 模型数组?

我对编程还很陌生,所以如果这个问题有一个非常简单的答案,我深表歉意。我正在尝试创建一个简单的网站,用户可以在其中上传多张图片并将这些图片显示在网站的其他位置。我正在使用Mongoose、Express和Node来实现这一点。我使用Multer作为上传中间件,我还使用了body解析器,我听说它在与Multer一起使用时会导致并发症。我正在使用CloudinaryAPI上传和托管上传的图像。理想情况下,用户会选择他们想要上传的图片,这些图片会被上传到Cloudinary,然后每张图片的直接链接将被保存在该特定帖子的Mongoose模型中,然后每张图片将使用已保存的图片链接。到目前为止,除了

javascript - Mongoose :在一次调用中填充多个查询

在Mongoose中,我可以使用查询填充来填充查询后的附加字段。我还可以填充多个路径,例如Person.find({}).populate('booksmovie','titlepagesdirector').exec()但是,这会生成一个对书的查找,收集标题、页数和导演的字段-也会生成一个对电影的查找,收集标题、页数和导演的字段。我想要的是仅从书中获取标题和页面,从电影中获取导演。我可以这样做:Person.find({}).populate('books','titlepages').populate('movie','director').exec()这给了我预期的结果和查询。但

node.js - 用 Jest 测试 GraphQL 解析器

我想使用Jest为GraphQL解析器编写测试,但真的不知道从哪里开始。解析器是使用NodeJS上的Mongoose写入MongoDB数据库的简单CRUD函数。类型:typeArticle{_id:ID!title:Stringauthors:[User]}查询extendtypeQuery{articles:[Article]article(_id:ID!):Article}解析器(只读)Query:{articles:()=>newPromise((resolve,reject)=>{Article.find({},(err,articles)=>{if(err)reject(er

包含 "@"的 MongoDB 密码

我正在尝试使用Node.js中的Mongoose使用用户名和密码连接到MongoDB数据库。所有文档都说连接字符串应该看起来像mongodb://username:password@host:port/db但是,密码中包含“@”字符。我怎样才能从中创建一个mongoose可以理解的连接字符串?我可以转义密码中的“@”还是必须使用其他连接方法? 最佳答案 使用这个语法://use%40for@mongoClient.connect("mongodb://username:p%40ssword@host:port/dbname?auth

node.js - 如何在 mongodb 中找到整数值的 $regex?

我有以下收藏。[{_id:ObjectId("5b17ab5489264c2df61ed2d6"),amount:12514545}]我想搜索125并获取以下文档。我已经试过了,但是没有用:db.collection.find({amount:{$regex:125}})如果能通过聚合查询就更好了。Test.aggregate([{"$match":{"$or":[{"amount":{parseInt(searchString)}},{"firstName":{"$regex":searchString}}]}}]) 最佳答案 您

mongodb - 访问 Mongoose 父文档以获取子文档中的默认值

我有一个用于Express/Mongo健康跟踪应用程序的后端API。每个用户都有一个weighIns数组、包含值、单位和记录日期的子文档。如果未指定单位,则单位默认为'lb'。constWeighInSchema=newSchema({weight:{type:Number,required:'Avalueisrequired',},unit:{type:String,default:'lb',},date:{type:Date,default:Date.now,},});每个用户还有一个defaultUnit字段,可以为该用户指定一个默认单位。如果该用户在未指定单位的情况下发布wei

node.js - 只读时忽略 Mongoose 模式

我有一个集合,其中的数据符合几种不同模式之一。这些在一个集合中的原因是我需要能够一起查询它们,利用MongoDB的无模式特性。有没有办法在忽略架构的情况下使用mongoose查询集合?例如:varadam=newContractCustomer({//Contractcustomerdatasavedtocustomerscollection})varbetty=newPaygCustomer({//PAYGcustomerdatasavedtocustomerscollection})adam.save()betty.save()Customers.find({}).exec().t