arrayFilters के साथ ऐसा करने का अब (MongoDB>=3.6) एक तरीका है और $[identifier] ।
नीचे दिया गया उदाहरण नेवला का उपयोग कर रहा है और एक डबल नेस्टेड सरणी के अंदर एक आइटम को एक सरणी में जोड़ देगा। इसे समझाने वाला एक अच्छा लेख है यहां ।
const blogPost = await BlogPost.create({
title : 'A Node.js Perspective on MongoDB 3.6: Array Filters',
comments : [
{ author : 'Foo', text : 'This is awesome!', replies : { name : 'George', seenBy : ['Pacey'] } },
{ author : 'Bar', text : 'Where are the upgrade docs?', replies : { name : 'John', seenBy : ['Jenny'] } }
]
});
const updatedPost = await BlogPost.findOneAndUpdate({ _id : blogPost._id }, {
$addToSet : {
'comments.$[comment].replies.$[reply].seenBy' : 'Jenny'
}
}, {
arrayFilters : [{ 'comment.author' : 'Foo' }, { 'reply.name' : 'George' }],
new : true
});
console.log(updatedPost.comments[0].replies);