蒙戈数据库 |使用数组进行图形查找



MongoDB - 尝试使用数组作为链接字段进行图形查找。看到难以理解的奇怪结果。

我的数据集:

db.events.insertMany([
{ _id: 1, name: 'A', companies: ["X", "Y", "Z"] },
{ _id: 2, name: 'B', companies: ["X", "Y"] },
{ _id: 3, name: 'C', companies: ["X", "W"] },
{ _id: 4, name: 'D', companies: ["P","Q"] },
{ _id: 5, name: 'E', companies: ["P"] }
]);

我的图形查询:

db.events.aggregate([
{ $match: { _id: 5 } },
{
$graphLookup: {
from: 'events',
startWith: '$companies', 
connectFromField: 'companies',
connectToField: 'companies', 
maxDepth: 1, 
as: 'colleagues'
}
}
]);

预期成果: 我本以为只有E&D会出现在结果中,因为他们是唯一从E开始的同事。但它显示了每个人。 有趣的是,如果我将公司的数据类型从数组更改为单个字符串,那么它就会按预期工作。数组 --> 数组遍历是可能的吗?还是应该进行某种"预转换"?

尝试将 maxDepth 字段设置为 0,因为它等效于非递归$graphLookup搜索阶段。

https://docs.mongodb.com/manual/reference/operator/aggregation/graphLookup/#max-depth

最新更新