gpt4 book ai didi

javascript - 如何查找文档中是否存在元素 - MongoDB?

转载 作者:可可西里 更新时间:2023-11-01 10:42:13 25 4
gpt4 key购买 nike

我正在尝试检查我的集合以返回文档中数组元素为特定值的所有文档。

例如,这是我的一个文档 JSON:

[
{
"employer" : "employer1@gmail.com",
"applicants" : [
{
"email" : "joe@gmail.com"
},
{
"email" : "fred@gmail.com"
}
]
},
{
"employer" : "employer2@gmail.com",
"applicants" : [
{
"email" : "steven@gmail.com"
}
]
},
{
"employer" : "employer3@gmail.com",
}
]

现在,我想要返回的是申请人数组不包含电子邮件 "steven@gmail.com"no applicants array 的任何文档.

在我上面的示例 JSON 中,它应该返回 employer1employer2 的文档。

我已经退回申请人 steven@gmail.com 不存在 的文件,所以 employer1,但我不明白如何也包含 雇主 3。我该怎么做?

到目前为止,这是我在 JavaScript 中的查询:

collection.find({"applicants.email" : {$ne : req.user.username}}, {}, function(e,docs){
res.json(docs);
console.log(docs);
});

最佳答案

尝试以下查询,这可能对您有所帮助:-

引用$size有关如何使用它的更多信息。

如果 applicants.email 不等于 req.user.username 或者 applicants 数组大小为 0,则此查询将返回结果。

collection.find({$or:[
{"applicants.email" : {$ne : req.user.username}},
{applicants: {$size: 0}}
}], function(e,docs){
console.log(docs);
});

我从未尝试过查询。让我知道它是否给出任何错误。

你也可以试试这个:-

如果 applicants.email 不等于 req.user.usernameapplicants 数组不存在,此查询将返回结果。

 collection.find({$or:[
{"applicants.email" : {$ne : req.user.username}},
{applicants: {$exists: false}}
}], function(e,docs){
console.log(docs);
});

引用$exists了解更多信息。

希望对您有所帮助。

关于javascript - 如何查找文档中是否存在元素 - MongoDB?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37670059/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com