Javascript mongodb中如何基于输入数组过滤数据?
我从前端接收到这样的输入Javascript mongodb中如何基于输入数组过滤数据?,javascript,arrays,mongodb,filter,Javascript,Arrays,Mongodb,Filter,我从前端接收到这样的输入 { "options":[ { "optionId":"5ebbe0f56b197f36fc472168" }, { "optionId":"5ebbe1aa6b197f36fc47216e" } ] } 我想以这样的方式过滤数据:当我过滤数据时,我应该接收一个包含这两个id的对象数组 我有我需要找到这个的结构 "answersArray" : [ { "
{
"options":[
{
"optionId":"5ebbe0f56b197f36fc472168"
},
{
"optionId":"5ebbe1aa6b197f36fc47216e"
}
]
}
我想以这样的方式过滤数据:当我过滤数据时,我应该接收一个包含这两个id的对象数组
我有我需要找到这个的结构
"answersArray" : [
{
"_id" : ObjectId("5ede62f6a6979e5128bb89ba"),
"questionId" : ObjectId("5ebbe00e6b197f36fc472161"),
"answerId" : ObjectId("5ebbe00e6b197f36fc472162")
},
{
"_id" : ObjectId("5ede62f6a6979e5128bb89b9"),
"questionId" : ObjectId("5ebbe0f56b197f36fc472168"),
"answerId" : ObjectId("5ebbe0f56b197f36fc472169")
},
{
"_id" : ObjectId("5ede62f6a6979e5128bb89b8"),
"questionId" : ObjectId("5ebbe1aa6b197f36fc47216e"),
"answerId" : ObjectId("5ebbe1aa6b197f36fc47216f")
}
],
"answersArray" : [
{
"_id" : ObjectId("5ede620ea6979e5128bb89b5"),
"questionId" : ObjectId("5ebbd4e76b197f36fc47211e"),
"answerId" : ObjectId("5ebbd4e76b197f36fc47211f")
},
{
"_id" : ObjectId("5ede620ea6979e5128bb89b4"),
"questionId" : ObjectId("5ebbd5516b197f36fc472120"),
"answerId" : ObjectId("5ebbd5516b197f36fc472121")
},
{
"_id" : ObjectId("5ede62f6a6979e5128bb89b8"),
"questionId" : ObjectId("5ebbe1aa6b197f36fc47216e"),
"answerId" : ObjectId("5ebbe1aa6b197f36fc47216f")
},
]
我期待着这个答案
"answersArray" : [
{
"_id" : ObjectId("5ede62f6a6979e5128bb89ba"),
"questionId" : ObjectId("5ebbe00e6b197f36fc472161"),
"answerId" : ObjectId("5ebbe00e6b197f36fc472162")
},
{
"_id" : ObjectId("5ede62f6a6979e5128bb89b9"),
"questionId" : ObjectId("5ebbe0f56b197f36fc472168"),
"answerId" : ObjectId("5ebbe0f56b197f36fc472169")
},
{
"_id" : ObjectId("5ede62f6a6979e5128bb89b8"),
"questionId" : ObjectId("5ebbe1aa6b197f36fc47216e"),
"answerId" : ObjectId("5ebbe1aa6b197f36fc47216f")
}
],
我如何筛选这些建议?您想使用
你想用
使用
$in
运算符:.find({u id:{$in:[“5ebbe0f56b197f36fc472168”,“5ebbe1aa6b197f36fc47216e”]})
感谢您的回复,但我在使用$in时稍微改变了我的问题,它返回两个文档,因为第二个文档也有来自输入数组的id,但我希望它只返回一个文档,第一个文档包含两个id,使用$in
运算符:。查找({u id:{$in:[“5ebbe0f56b197f36fc472168”,“5ebbe1aa6b197f36fc47216e”]})感谢您的回复,但我在使用$in时稍微改变了我的问题,它返回了两个文档,因为第二个文档也有输入数组中的id,但我希望它只返回一个文档,第一个文档包含两个id
db.collection.findOne(
{
"answersArray.questionId": {$all: options.map(id => ObjectId(id))}
}
);