MongoDB使用带多元素条件的$positional操作符?

MongoDB使用带多元素条件的$positional操作符?,mongodb,Mongodb,给定此文档结构(对象数组): 我知道我可以这样做来替换数组中的特定文档: coll.update( {'_id':'2', 'users._id':'2'}, {$set:{'users.$':{"name":"blahblah",... }}}, false, true) 但是,当指定两个元素级别的标准都必须为真时,是否可以这样做?(即x和y)。我只见过一个例子,但我似乎无法让它发挥作用。也许是这样的 coll.update( {'_id':'2', 'users.x':'2', 'user

给定此文档结构(对象数组):

我知道我可以这样做来替换数组中的特定文档:

coll.update( {'_id':'2', 'users._id':'2'}, {$set:{'users.$':{"name":"blahblah",... }}}, false, true)
但是,当指定两个元素级别的标准都必须为真时,是否可以这样做?(即x和y)。我只见过一个例子,但我似乎无法让它发挥作用。也许是这样的

coll.update( {'_id':'2', 'users.x':'2', 'users.y':'2'}, {$set:{'users.$':{"name":"blahblah",... }}}, false, true)

如果要匹配同一文档中的两个字段,则需要使用运算符

您的查询(where)谓词将是:

{ _id: 2, users : {$elemMatch : {x:2, y:2} } } 
{ _id: 2, users : {$elemMatch : {x:2, y:2} } }