我正在尝试查询我的 mongodb 集合之一,如下所示:
> db.collection.find()
{name: "foo", things: [{stuff:"banana", value: 1}, {stuff:"apple", value: 2}, {stuff:"strawberry", value: 3}]}
{name: "bar", things: [{stuff:"banana", value: 4}, {stuff:"pear", value: 5}]}
...
我的目标是列出所有具有 things
字段的对象,该字段包含具有 stuff=banana
但没有 stuff=apple
的元素>/p>
我试过这样的:
db.transactions.find({
"things": {
$elemMatch: {
"stuff": "banana",
$ne: {
"stuff": "apple"
}
}
}
)
但它不起作用。有什么想法吗?
最佳答案
下面的查询将获取所有文档的列表,这些文档的 things
字段包含带有 stuff=banana
但没有 stuff=apple
的元素>:
db.test.find({"$and":[{"things.stuff":"banana"}, {"things.stuff":{$ne:"apple"}}]})
关于Mongodb - 包含元素但不包含另一个元素的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22628999/