用于在Mongo文档中更新数组内部对象的Mongoose语法

我正在尝试使用Mongoose的findOneAndUpdate更新数组中的某个对象。 我能够使用Mongo的文档来构build一些可以工作的本地代码(例如在Robomongo中),但我不确定相当于Mongoose的语法。

这是我用Express编码的架构:

 var NotesSchema = new Schema({ NoteID: Number, Title: String, Items: [ { ItemID: Number, Title : String, DateCreated : Date, DateModified: Date, Checked: Boolean } ], DateCreated: Date, DateModified: Date }); 

在这个例子中,我想更新Items数组中的ItemTitle

这是我的Mongo代码。 它通过获取NoteID然后ItemID引用数组,然后设置Title文本。

 db.notesmodels.update( { NoteID : 29751527, "Items.ItemID" : 95373900 }, { $set : { "Items.$.Title" : "Hello 777" } } ) 

所以我想要构build的Mongoose代码将采用NoteIDItemIDTitle 。 我将如何做findOneAndUpdate ? 另外,我可以尝试在Express中使用本地Mongo代码,但到目前为止,还没有工作。

mongoose应该看起来像这样:

 var Notes = mongoose.model('NotesSchema'); Notes.findOneAndUpdate( { 'NoteID': 29751527, 'Items.ItemID': 95373900 }, { $set:{ 'Items.$.Title': 'Hello 777' } }, function(err,result){ if (!err) { console.log(result); } }); 

它会返回修改后的文件。