在Meteor(服务器端)中我需要使用以下结构更新文档:
{
"_id" : ObjectId("..."),
"foo" : {
"bar" : [1, 2, 3]
},
"owner" : 1
}
我需要通过索引更新数组值,而不是按值更新。当我尝试像
这样的东西时{owner: 1}, {$set: {'foo.bar.1': 100}}
文件变得像
{
"_id" : ObjectId("..."),
"foo" : {
"bar" : {
"1": 100
}
},
"owner" : 1
}
这不是我需要的。我可以将文档结构更改为
{
"_id" : ObjectId("..."),
"foo" : {
"bar" : [
{
"period" : 1,
"value" : 4000
},
{
"period" : 2,
"value" : 0
}
]
},
"owner" : 1
}
然后使用
{owner: 1, "foo.bar.period": 1}, {$set: {'foo.bar.$.value': 100}}
按预期工作,但我想知道是否有更简单的解决方案。