【发布时间】:2022-01-22 07:36:48
【问题描述】:
如果$in 中的输入与任何docs 不匹配,Mongo 有什么方法可以返回一些指示(标志、字段等)?
请看我的Mongo Playgrond
成功只是返回所有奇怪的文档。
我怎样才能有一些迹象表明未找到事件?
我想在 Mongo 内部执行此操作。我知道我可以遍历JS 中的结果并执行diff。
Fwiw,我这个$in 实际上将是$match 中$match 的第一阶段。所以也许我可以使用addFields 之类的东西来表示不匹配。
谢谢!
所以我想要的输出可能是每个否定匹配仍然得到一个返回文档..但是有一个新属性found:false,如下所示。所以..在我的例子中,evens #s 不是成立的,看到类似的东西会很酷..
{
"_id": ObjectId("5a934e000102030405100006"),
"key": 2,
"found": false
},
{
"_id": ObjectId("5a934e000102230405000006"),
"key": 4,
"found": false
},
{
"_id": ObjectId("5a934e000122030405000006"),
"key": 6,
"found": false
}
也许,将found 也用于所有正匹配会更简洁。
或者...可能返回不匹配的子数组(在后处理中可能更清晰)
【问题讨论】:
-
请澄清您的问题,您的问题无法理解。
-
另外:请在此处发布输入文档、尝试的 agg 逻辑和所需的输出形状。 SO 政策是用外部链接(例如 mongo 游乐场)补充这些材料,而不是替换。
-
如果找不到
$in的方式,将返回一个空光标,您可以在驱动程序see 上进行测试,如果您可以提供 json 示例数据和预期输出,我们知道你需要什么
标签: javascript mongodb aggregation-framework