【发布时间】:2018-03-12 22:30:40
【问题描述】:
我正在尝试在文档及其子文档中添加版本控制级别。这是一个架构示例
{
"_id" : ObjectId("59d1312a8ee6de1858933950"),
"synonyms" : [
{
"_id" : ObjectId("59d1312a8ee6de1858933954"),
"text" : [
1.0,
2.0,
3.0
],
"__v" : 1.0
},
{
"_id" : ObjectId("59d1312a8ee6de1858933953"),
"text" : [
"Foo ",
"bar ",
"Baz"
],
"__v" : 0
},
{
"_id" : ObjectId("59d1312a8ee6de1858933951"),
"text" : [
"fizz",
"bazz",
"bizz"
],
"__v" : 0
}
],
"__v" : 3.0
}
如您所见,父文档有自己的__v,而每个子文档(同义词数组的一部分)也有自己的__v。我想要完成的是这个
- 更新子文档数组时 - 增加子文档的版本及其父版本
为此,我尝试了以下代码
db.collection.update({
'_id': ObjectId("59d1312a8ee6de1858933950"),
"synonyms._id": ObjectId("59d1312a8ee6de1858933954")
},
{$set: {'synonyms.$.text': [1,2,3]}, $inc: {'synonyms.$.__v': 1}, $inc: {"__v": 1}}
)
我的父母__v 每次更新都会增加,但无论我经历多少次更新,子文档似乎都停留在1.0。有没有更好的办法?
【问题讨论】:
标签: mongodb