更新mongodb中同一文档的两个数组中的两个元素

时间:2014-08-07 07:46:41

标签: mongodb

我有一份文件:

{ "a" : 9, "b" : [ { "c" : "x", "d" : 8, "k" : 1 }, { "c" : "y", "d" : 2, "k" : 1 } ], "e" : [ { "f" : "u", "g" : 16, "q" : 10 }, { "f" : "v", "g" : 10, "q" : 11 } ] }

现在我想要包括a,b.d(其中b.c =" y"和b.k = 1)和例如(其中e.f =" u"和e.q = 10)。所以我写了更新命令:

db.foo.update({b: {$elemMatch: {c: "y", k: 1}}, e: {$elemMatch: {f: "u", q: 10}}}, {$inc: {a: 1, "b.$.d": 1, "e.$.g": 1}})

我的预期结果:

{ "a" : 10, "b" : [ { "c" : "x", "d" : 8, "k" : 1 }, { "c" : "y", "d" : 3, "k" : 1 } ], "e" : [ { "f" : "u", "g" : 17, "q" : 10 }, { "f" : "v", "g" : 10, "q" : 11 } ] }

但真正的结果是:

{ "a" : 10, "b" : [ { "c" : "x", "d" : 9, "k" : 1 }, { "c" : "y", "d" : 2, "k" : 1 } ], "e" : [ { "f" : "u", "g" : 17, "q" : 10 }, { "f" : "v", "g" : 10, "q" : 11 } ] }

b.d增加,其中b.c =" x"和b.k = 1。这是错的。

如何更正我的更新命令? (mongodb 2.6.3版)

0 个答案:

没有答案