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