【发布时间】:2016-12-09 03:14:08
【问题描述】:
我需要做一个特殊的查询。我有一份可用于生产的物品清单。使用这些数据,我需要查询列表中每种类型的项目所在的文档。一些(稍微)简单化的 Document 看起来可能是这样的。
{
"productname": "iron",
"requirements": [
{
"ammount": 2,
"item": "coal"
},
{
"ammount": 2,
"item": "ironore"
}
],
}
{
"productname": "coal",
"requirements": [
{
"ammount": 2,
"item": "wood"
}
],
}
{
"productname": "copper",
"requirements": [
{
"ammount": 2,
"item": "coal"
},
{
"ammount": 2,
"item": "copperore"
}
],
}
{
"productname": "Chair",
"requirements": [
{
"ammount": 2,
"item": "wood"
},
{
"ammount": 2,
"item": "nails"
},
{
"ammount": 2,
"item": "paint"
}
],
}
{
"productname": "Wooden Toy",
"requirements": [
{
"ammount": 2,
"item": "wood"
},
{
"ammount": 2,
"item": "paint"
}
],
}
示例列表可能如下所示: [“木头”、“啤酒”、“煤”、“油漆”、“铜矿”]
这应该返回“煤炭”、“铜”和“木制玩具”的文件,因此它们的所有要求都在列表中。 “Chair”缺少“钉子”,“Iron”缺少“Ironore”。
(对不起,我的英语不好;))
【问题讨论】:
-
你能详细说明
special和unusual是什么吗? -
我认为不是我的查询的所有部分都需要匹配但目标文档中的所有要求都需要满足是不寻常的。可能我解释得不够清楚。
-
那么让我们看看我是否理解:您有一个要求列表,比如说
[element1, element2, element4],并且您想要所有具有所有这些要求的文档?例如,他们有[element1, element2, element3, element4]? -
不,我有一个清单,里面有我存储的东西,大概有 100 件左右。我得到了 MongoDB 和我可以生产的东西,请参阅上面的示例文档。现在我想知道基本上可以生产什么东西。 (可以忽略 ammount)所以我想获取存储列表中列出的所有要求的所有文档。
-
如果您提供一组示例输入和预期输出来说明可能的情况(在问题本身中,而不是作为评论),这将非常有帮助。
标签: node.js mongodb mongoose aggregation-framework