假设我有以下数据
[
{ name: 'A', values: [1, 2, 3 ,4] },
{ name: 'B', values: [5, 6, 7, 8] }
]
我有一个mongodb
,该集合中包含以下项目:
#1 { name: 'A', values: [1, 2, 3 ,4], path: '...' },
#2 { name: 'B', values: [8, 9, 5, 7], path: '...' },
#3 { name: 'B', values: [5, 6, 7, 8], path: '...' },
#4 { name: 'C', values: [9, 10, 11, 12], path: '...' }
现在,我要查询path
中与我的两个项目A
和B
相匹配的data
(项目#1
和{{1} }。 #3
可能吗?
答案 0 :(得分:2)
您可以遍历data
并在map
函数内部使用查询,方法是使其异步化
const data = [
{ name: 'A', values: [1, 2, 3 ,4] },
{ name: 'B', values: [5, 6, 7, 8] }
]
const result = []
await Promise.all(data.map(async(d) => {
result.push(await db.collection.findOne(d))
}))
甚至是单个查询
await db.collection.find(
{
name: { $in: data.map(({ name }) => name) },
values: { $in: data.map(({ values }) => values) }
}
)