【发布时间】:2019-10-06 04:42:23
【问题描述】:
我正在开发一个使用 mongoose 与我的 mongo 数据库交互的 graphql API,但我正在努力解决一些问题。我有带有子文档数组的文档,我需要获取包含具有特定字段值的子文档的所有文档。问题是我只想在文档中获取这个子文档。用一个例子更容易解释:
我的文件是这样的:
documents: [
{
id: 1,
items: [
{
value: 5,
},
{
value: 10,
},
]
},
{
id: 2,
items: [
{
value: 7,
},
{
value: 10,
},
]
}]
我想获取所有包含value == 5 项目但仅包含此值的文档,例如:
results : [
{
id: 1,
items: [
{
value: 5,
}
]
}]
我现在要做的是:
documents.find({
items: {
$elemMatch : {
value: { $eq: 5 }
}
},
});
这样做我得到了正确的文档,但它包含所有项目,而不仅仅是符合条件的项目。我寻找解决方案,但没有找到任何方法。
感谢您的帮助,我希望它足够清楚。
【问题讨论】:
标签: javascript node.js database mongoose