Mongodb 如何查找和修改嵌套数组中的值
下面是一个示例文档Mongodb 如何查找和修改嵌套数组中的值,mongodb,Mongodb,下面是一个示例文档 { "_id" : ..., "inprogress" : true, "name" : "Biz report", "inviteCode" : [ { "key" : "4fbd2b4b265a3", "status" : "1" }, { "key" : "4
{
"_id" : ...,
"inprogress" : true,
"name" : "Biz report",
"inviteCode" : [
{
"key" : "4fbd2b4b265a3",
"status" : "1"
},
{
"key" : "4fbd2b4b265b5",
"status" : "1"
},
{
"key" : "4fbd2b4b265b9",
"status" : "1"
},
{
"key" : "4fbd2b4b265bc",
"status" : "1"
},
{
"key" : "4fbd2b4b265c0",
"status" : "1"
}
]
}
根据文档,我可以使用修饰符对象作为更新参数,但似乎更新参数不包括我要更新的witch字段上的过滤器。我只能使用
$set:{name:“xxx”}
,但我不能指定在嵌套数组中更新哪个元素。如何设置键为“4fbd2b4b265a3”的inviteCode列的“status”字段?您可以使用$positional操作符:
就你而言:
db.collection.update( { inviteCode: { $elemMatch: { key: "4fbd2b4b265a3" } } },
{ $set: { 'inviteCode.$.status': '2' } } )
“$”实际上是一个变量,其值被设置为数组中第一个匹配项的索引。如何使用findAndModify()在mongoose中实现同样的效果?