草庐IT

mongoose-dbref

全部标签

node.js - Mongoose 通过 $set a value if NOT undefined 进行更新 (NodeJS)

检查未定义值的正确方法是什么?我想要做的是有一个PUT方法来更新那些不为空的字段。例如,如果我发送req.body.name='John'而没有发送req.body.job我希望我的请求只更改名称。部分代码:router.put('/:id',(req,res)=>{constquery={_id:req.params.id};constupdate={$set:{name:req.body.name,job:req.body.job}};User.findOneAndUpdate(query,update,(err,userUpdated)=>{if(err){console.log

node.js - Nodejs - Mongoose 连接到定义的 MongoDB

我有一个连接到MongoDB的nodejs应用程序,这个应用程序定义了自己的模型和模式。出于某种原因,我需要创建另一个nodejs应用程序,它连接到另一个应用程序连接到的同一个MongoDB。那么,我是否必须定义相同的模型?有没有办法从Mongoose中提取模型? 最佳答案 您不能像那样从Mongoose中提取模型,但是您可以使用没有Mongoose的MongoDB连接,具体取决于您需要做什么。例如:在其他应用中执行此操作:MongoClient=require('mongodb').MongoClient;MongoClient.

javascript - 与 Mongoose 一起使用 promise 时遇到麻烦

谁能告诉我为什么这个promise设置不起作用。它应该删除文档然后添加它然后找到它然后控制它。它不是在安慰数据。varComp=require("./models/company.js");vararr=[{name:"comp1",industry:"industry1",ranking:20},{name:"comp2",industry:"industry2",ranking:5},{name:"comp3",industry:"industry3",ranking:10}]varoutput={};varpromise=Comp.find({}).exec()promise.t

node.js - Mongoose js批量查找

我正在使用Mongoose3.8。我需要获取100个文档,执行回调函数,然后获取接下来的100个文档并执行相同的操作。我原以为.batchSize()会做同样的事情,但我是一次获取所有数据。我必须使用limit还是offset?如果是,有人可以举一个合适的例子吗?如果可以用batchSize完成,为什么它对我不起作用?MySchema.find({}).batchSize(20).exec(function(err,docs){console.log(docs.length)});本以为每次打印20,没想到打印的是整数。 最佳答案

javascript - 如何使用 Node.js 和 Mongoose 将对象添加到嵌套数组

如何将对象添加到PartnerSchema中的嵌套数组?我把文件分开,因为以后嵌套数组会更多这是我的模式:varproductSchema=newmongoose.Schema({name:String});varpartnerSchema=newmongoose.Schema({name:String,products:[{type:mongoose.Schema.Types.ObjectId,ref:'Product'}]});module.exports={Partner:mongoose.model('Partner',partnerSchema),Product:mongoo

mongodb - Mongoose/mongoDB 删除唯一索引约束

我之前在我的数据库中使用Mongoose创建了一个唯一索引。Model.index({name:1,location:1},{unique:true});现在由于一些编码更改,我想放弃索引的唯一性。有没有办法只删除索引的唯一性?我唯一能想到的就是去做Model.dropIndex({name:1,location:1});Model.index({name:1,location:1});这是正确的吗?或者有没有更容易混淆的代码编写方式.. 最佳答案 是的,如docs中所述:Tomodifyanexistingindex,younee

node.js - 我将如何使用 Mongoose 创建和更新时间序列?

我想遵循这个模式设计,因为它看起来很好:http://blog.mongodb.org/post/65517193370/schema-design-for-time-series-data-in-mongodb理想情况下,我想记录在一分钟内每秒捕获数据的文档-就像他们早期的示例一样。我遇到了3个不同的障碍:1)我不太确定架构应该是什么样子-目前我有这样的东西:varmySchema=newmongoose.Schema({timestamp_minute:String,type:String,values:[Number]});2)'values'数组的长度应为60(以存储我们在一分

node.js - Mongoose 只从文档的嵌套数组中返回一个元素

我想在我的文档中获取一个数组中的单个元素,而不是获取整个数组本身。使用Mongoose可以做到这一点吗?我试过使用dot.notation但它似乎不起作用-它只是在“索引点”之后获取空的嵌套对象//HereI'dliketoget//Thefirstundo-editemfromthefirstboardwithinmy`boardBucket`Room.findOne({name:this.name},`boardBucket.items.0.undoedItems.1`,(err,result)=>{if(err)throwerr;console.log(JSON.stringif

javascript - Mongoose 更新嵌套值

我的mogoose架构中有一些嵌套属性,如下所示:constuserSchemaValues={username:{type:String,required:[true,'Usernamerequired'],trim:true,unique:true,lowercase:true},password:{type:String,required:[true,'Passwordrequired'],trim:true,minlength:8},...prop:{prop_1:String,prop_2:String}};valuesToUpdate.prop=_.pick(req.bod

node.js - express js中如何将base64直接保存到mongoose

我不想将图像保存在我的服务器中,而是保存在我的数据库中。这是我的模型varmongoose=require('mongoose');varSchema=mongoose.Schema;varcategorySchema=newSchema({img:{data:Buffer,contentType:String},});module.exports=mongoose.model('Category',categorySchema);现在在我的路由器中,我得到了这个带有长字符串的base64图像。{'$ngfDataUrl':'data:image/png;base64,long-Str