草庐IT

mongoose-dbref

全部标签

node.js - 带有版本号的 Mongoose 乐观并发

有什么方法可以强制mongoose在保存时始终验证文档版本?据我所知,默认行为仅在修改文档中的数组时强制执行版本号。更糟糕的是,即使文档版本不匹配,似乎也允许向数组添加元素,因此目前,即使您正在修改数组,也需要替换数组以获取版本检查。(请注意,我使用的示例使用无模式子文档(简单定义为“{}”),这可能会影响行为)。除了thisarticle我找不到有关该主题的任何文档。也许有一个插件可以做到这一点? 最佳答案 免责声明:我自己编写了插件,以在我自己的代码中解决这个问题,基于thisissueonGitHub.这已经晚了,但希望总比没

node.js - 如果文件未导出,如何使用在单独文件中定义的 Mongoose 模型?

考虑一个非常简单的Express4应用结构:--app.js--models|--db.js|--news.js其中news.js包含一个Mongoose模式和基于该模式的模型:varmongoose=require('mongoose');varSchema=mongoose.Schema;varnewsSchema=newSchema({title:String,subtitle:String,//otherfields...});varNews=mongoose.model('News',newsSchema);据我了解,为了让app.js使用News模型,它必须像这样在脚本中要

javascript - 如何使用 Mongoose 删除对象内的子文档

我正在尝试使用Mongoose从对象中删除带有ID的子文档。我试图在Moongose中使用更新功能,但在我运行脚本后,我得到状态“Ok:1”但状态“nModified:0”。正在尝试使用以下脚本:Page.update({"subPages._id":req.body.ID},{"$unset":{"subPages":1}},function(re,q){console.log(q);});此脚本从对象中删除所有子文档。这是我的json:{"_id":ObjectId("585a7a7c2ec07b40ecb093d6"),"name_en":"HeadPage","name_nl"

node.js - Mongoose promise 错误

这是添加原生promise后保存时仍然抛出的错误。(node:5604)DeprecationWarning:Mongoose:mpromise(mongoose'sdefaultpromiselibrary)isdeprecated,pluginyourownpromiselibraryinstead:http://mongoosejs.com/docs/promises.htmlmongoose.Promise=global.Promise;mongoose.connect('mongodb://127.0.0.1/optimusCP').then(function(){conso

node.js - Mongoose 点符号 $inc 更新

我有一份文件如下:{"_id":"1","myplaylists":[{"_id":"2","name":"Playlist_0","likes":712,"views":7110}],"name":"Firstname,Lastname"}我想更新并增加“myplaylists.likes”我所做的是:User.update({'myplaylists._id':2},{$inc:{'myplaylists.likes':1}}但由于$inc中的点符号,它似乎不起作用有什么办法吗? 最佳答案 使用positionaloperato

node.js - MongoDB Aggregate 中的 Mongoose Virtuals

我的MongooseSchema如下:varDSchema=newmongoose.Schema({original_y:{type:Number},,new_y:{type:Number},,date:{type:Date},dummy:[dummyEmbeddedDocuments]},toObject:{virtuals:true},toJSON:{virtuals:true}});DSchema.virtual('dateformatted').get(function(){returnmoment(this.date).format('YYYY-MM-DDHH:mm:ss')

node.js - 关于 Mongoose 填充关系一个字符串字段

我有两个架构1-用户UserSchema=newdb.Schema({email:{type:String,required:true},pass:{type:String,required:true},nick:{type:String,required:true},admin:{type:String,default:''},reg:{type:Date,default:Date.now}});2-文章ArticleSchema=newdb.Schema({title:{type:String,required:true},alise:{type:String},time:{typ

node.js - NodeJS 崩溃 : Mongoose findById() does NOT throw error when document is NOT found

我试图研究这个问题的原因;这很可能是我对Mongoose工作方式的误解。我正在尝试以REST样式创建CRUD后端。GET、PUT、POST似乎都有效。但是,对于DELETE动词的问题,我有点不知所措。问题我用Postman将一些假数据输入到mongo中,一切顺利。所以我复制了一条记录的_id字段并尝试删除。当我发送DELETE请求时,成功消息传来,记录确实从mongo中删除。但是,在删除其他记录后,我决定尝试删除一条我已经删除的文档的_id记录。我向“api/brothers/57280602953cff031f21ad9c”发送了删除请求原来NodeJS崩溃了!这是相关的服务器代码:

node.js - 防止 Mongoose 模式中数组中的重复条目

用户架构:varUserSchema=newSchema({name:{type:String,required:true},email:{type:String,required:true,lowercase:true,index:{unique:true}},password:{type:String,required:true,select:true},blog_bookmarks:[{type:String}]});为特定用户向blog_bookmarks添加值的APIapi.post('/add_bookmark_blog',function(req,res){User.fi

node.js - Mongoose insertMany().exec() 返回 TypeError

以下函数由async/await函数调用,因此我需要从Mongoose返回一个真正的Promise,因此根据documentation使用“.exec()”和thisSOthread.//wheredataisanarrayofdocumentsfunctioninsertNewResults(data){returnModel.insertMany(data).exec();}这样做会给我以下错误:TypeError:Model.insertMany(...).execisnotafunctionatinsertNewResults如果我删除exec(),我可以毫无问题地插入许多。我