javascript - 如何使用mongodb查询返回数组中不可用的给定输入值
问题描述
我有一个输入数组,EX: let UPID = ["0","1","10"]
。我必须检查members.regularStudent
给定的输入值是否可用?假设不可用意味着我必须推送一个数组并返回结果
我的文件:
{
"_id" : "5bb20d7556db6915846da67f",
"members" : {
"regularStudent" : [
"3",
"4"
]
}
},
{
"_id" : "5bb20d7556db6915846da55f",
"members" : {
"regularStudent" : [
"1",
"2"
]
}
}
我的预期输出
[
"0",
"10"
]
我的代码:
let UPID = ["0","1","10"]
db.Groups.find(
/*{
"members.regularStudent": { $nin: UPIDs }
}*/
)
.forEach(function(objects){
print(objects)
})
我已经更新了
mycode
,请在我的问题部分查看顶部,这print(objects)
意味着我有我的对象,基于这个变量你能更新你的答案吗?
** 打印(对象) **
{
"_id" : "5bb20d7556db6915846da67f",
"members" : {
"regularStudent" : [
"3",
"4"
]
}
},
{
"_id" : "5bb20d7556db6915846da55f",
"members" : {
"regularStudent" : [
"1",
"2"
]
}
}
解决方案
您可以将map
方法与.filter
let UPID = ["0","1","10"];
let docs = [{ "_id" : "5bb20d7556db6915846da67f", "members" : { "regularStudent" : [ "3", "4" ] } },
{ "_id" : "5bb20d7556db6915846da55f", "members" : { "regularStudent" : [ "1", "2" ] } }]
let ids = [].concat(...docs.map(elem => elem.members.regularStudent));
console.log(UPID.filter(id => !ids.includes(id)));
推荐阅读
- c# - OpenAPI yaml 文件中带点的可空枚举是否有效?
- microservices - 微服务相互依赖
- python - 如何将网站的 HTML 代码复制到 python 中的文本文件?
- java - 服务器不断显示此内容,有时无缘无故崩溃
- caching - 设置 Cache-Control max-age=0 和 s-maxage= 不为零是否有意义?
- python - 当达到某个索引值时,如何停止将数字添加到列表中的 while 循环?
- algorithm - 在一般情况下,我的随机分区数组看起来如何?
- css - 是否可以在 SCSS 中缩短或重写这样的代码?
- parsing - 为什么 antrl4 不将标记识别为语法规则的一部分?
- javascript - Ajax 调用不在控制器后面运行代码