我有两个不同的mongoDB查询代表两个不同的条件,例如:
{ stuff: { $elemMatch: { foo: 1, bar: "a" } } }
Run Code Online (Sandbox Code Playgroud)
和:
{ stuff: { $elemMatch: { foo: 2, bar: "b" } } }
Run Code Online (Sandbox Code Playgroud)
wherestuff是同时设置了foo和bar字段的元素数组。
现在,我不确定如何匹配集合中同时满足上述两个条件的元素。
只要是明确的:在这种情况下,我需要有两个一个元素的所有元素stuff已 foo设置为1同bar组的"a"还的一个元素stuff已经foo设置为2同bar组的"b"。
这样做 { stuff: { $elemMatch: { foo: { $in: [1, 2] }, bar: { $in: ["a", "b"] } } }是错误的,因为它会表现得像一个OR在两个表达式(包括两个新表达式)上。
关于如何对待AND他们的任何想法?
只是要清楚:在这种情况下,我需要获取所有元素,其中一个元素的 foo 设置为 1,bar 设置为“a”,还有一个元素的 foo 设置为 2,bar 设置为“乙”。
我希望我得到了它。不应该是
db.coll.find({ $and: [
{ "stuff" : { $elemMatch : { "foo" : 1, "bar" : "a" } } },
{ "stuff" : { $elemMatch : { "foo" : 2, "bar" : "b" } } } ]});
Run Code Online (Sandbox Code Playgroud)
?
| 归档时间: |
|
| 查看次数: |
2002 次 |
| 最近记录: |