在 mongoDb 中查找包含 2 个字段的所有文档的最佳方法
Best way to find all documents with 2 fields in mongoDb
我需要帮助来查找 mongodb 中的文档。
我的架构如下所示:
const users = new Schema({
_id: ObjectId,
facebookId: String,
.....
.....
})
我有 2 个数组用于查询,如下所示:
const facebookIds = ['1', '2', '3']
const _ids = ['1', '2', '3']
目前,我正在考虑首先找到所有带有 facebookIds
数组的文档,获取它们的 _id
,将结果与 _ids
数组连接,最后找到所有具有结果 _ids
数组的文档。
所以,我想知道一次性查询文档的最佳方式是什么,或者这是唯一的方式。
提前致谢。
假设您在集合中有 3 个用户有 facebookId,另外 3 个没有 facebookId。你已经有了前3个数据的facebookId和后3个数据的_id。
[
{
_id: 1,
facebookId: 10,
},
{
_id: 2,
facebookId: 20,
},
{
_id: 3,
facebookId: 10,
},
{
_id: 4,
facebookId: null,
},
{
_id: 5,
facebookId: null,
},
{
_id: 6,
facebookId: null,
}
]
您可以为此使用 $or operator and $in 运算符
db.collection.find({
$or: [
{
facebookId: {
$in: [10,20,30]
}
},
{
_id: {
$in: [4,5,6]
}
}
]
})
这是一个有效的 mongoplayground link
我需要帮助来查找 mongodb 中的文档。 我的架构如下所示:
const users = new Schema({
_id: ObjectId,
facebookId: String,
.....
.....
})
我有 2 个数组用于查询,如下所示:
const facebookIds = ['1', '2', '3']
const _ids = ['1', '2', '3']
目前,我正在考虑首先找到所有带有 facebookIds
数组的文档,获取它们的 _id
,将结果与 _ids
数组连接,最后找到所有具有结果 _ids
数组的文档。
所以,我想知道一次性查询文档的最佳方式是什么,或者这是唯一的方式。
提前致谢。
假设您在集合中有 3 个用户有 facebookId,另外 3 个没有 facebookId。你已经有了前3个数据的facebookId和后3个数据的_id。
[
{
_id: 1,
facebookId: 10,
},
{
_id: 2,
facebookId: 20,
},
{
_id: 3,
facebookId: 10,
},
{
_id: 4,
facebookId: null,
},
{
_id: 5,
facebookId: null,
},
{
_id: 6,
facebookId: null,
}
]
您可以为此使用 $or operator and $in 运算符
db.collection.find({
$or: [
{
facebookId: {
$in: [10,20,30]
}
},
{
_id: {
$in: [4,5,6]
}
}
]
})
这是一个有效的 mongoplayground link