以下是一些文件:
/* 1 */
{
"_id" : ObjectId("566e80fcddf99fd898a11ad8"),
"username" : "dummy_0",
"score" : 10
}
/* 2 */
{
"_id" : ObjectId("566e80fcddf99fd898a11ad9"),
"username" : "dummy_1",
"score" : 20
}
/* 3 */
{
"_id" : ObjectId("566e80fcddf99fd898a11ada"),
"username" : "dummy_1",
"score" : 30
}
我想获得所有文件,其中不存在这对夫妇(用户名/分数)。
例如,如果我选择username: dummy_1
和score: 20
,我应该检索对象1和3。
首先我尝试了:
db.foobar.find({ score: { $ne: 20}, username: { $ne: 'dummy_1'}})
但它显然不起作用。
你知道我怎么能做到这一点?
答案 0 :(得分:3)
您可以使用逻辑$or
运算符查询如下。
db.foobar.find( {
$or: [
{ "username": { $ne: "dummy_1" } },
{ "score": { $ne: 20 } }
]
})
答案 1 :(得分:0)
您可以使用逻辑file1...n.txt
运算符查询如下。
$or

它将返回夫妻(用户名/分数)不存在的所有文件。
答案 2 :(得分:-1)
您需要使用"和"运营商。你可以尝试下面的一个看看。
db.foobar.find({ $and: [{score: { $ne: 20}}, {username: { $ne: 'dummy_1'}}]})