私はmongodbとmongooseを新しくしました。私はノードjsを使用しています。サブ文書の配列の中の特定のフィールドを見つけて更新したいです。 は、ここに私のデータ構造です:subdoc mongooseの配列内で1つのフィールドを見つけて更新します
var PostSchema = new Schema({
title: String,
comment: [
{
name: String,
value: String
}
],
createdAt: Date,
updateAt: Date
})
これは私のデータの例である:私は_idているコメントを更新する必要が
{
_id : 12,
title : 'some article here...',
comment : [{
_id : 1,
name : 'joe',
value : 'wow that fantastic...'
},{
_id : 2,
name : 'rocky',
value : 'really... thats insane...'
},{
_id : 3,
name : 'jane',
value : 'i think its impossible to do...'
}],
createdAt : 2016-04-14 04:50:54.760Z,
updatedAt : 2016-04-14 04:50:54.760Z
}
:2、i「は、何になる値を変更したいです? '私は更新しようとします:
Post.findOne({'_id': 12, 'comment._id': 2}, {_id: 0, 'comment.$': 1}, function (err, cb) {
cb.comment.value = 'what???'
cb.save()
})
しかし、それは失敗しました...あなたは私を助けることができますか?おかげ
http://mongoosejs.com/docs/api.html#model_Model.findOneAndUpdate
findOneAndUpdate
と位置演算子$
を使用することができます –