【发布时间】:2019-12-19 11:31:22
【问题描述】:
目前遇到使用 MongoDB 聚合的问题。我有一个'_ids'数组,我需要检查它是否存在于特定集合中。
例子:
我在“集合 1”中有 3 条记录,_id 为 1,2,3。我可以使用以下方法找到匹配值:
$match: {
_id: {
$in: [1, 2, 3, 4]
}
}
但是我想知道的是我传入的值 (1,2,3,4)。哪些不符合记录。 (在这种情况下 _id 4 将没有匹配的记录)
所以不是返回_id 1、2、3的记录。它需要返回不存在的_id。所以在这个例子中'_id:4'
查询还应忽略集合中的任何额外记录。例如,如果集合包含 ID 为 1-10 的记录,并且我传入一个查询以确定 _ids: 1、7、15 是否存在。我期望的值将类似于 '_id: 15 doesn't exist
第一个想法是在聚合中使用 $project 来保存传入的每个_id,然后附加集合中的每条记录。到传入的匹配_id。例如:
Record 1:
{
_id: 1,
Collection1: [
record details: ...,
...
...
]
},
{
_id: 2,
Collection1: [] // This _id passed in, doesn't have a matching collection
}
但是在这种情况下似乎无法找到一个可行的示例。任何帮助将不胜感激!
【问题讨论】:
标签: mongodb