[英]How to find a value of a specified object property in a array using mongoose find()
我的架构
{
_id: xxxxxxxxxxxxx,
totalCreatedForms: [
{formName: "formone", formIndex: 0},
{formName: "formtwo", formIndex: 1},
{formName: "formthree", formIndex: 2}
]
}
我使用 mongoose 查询来查找我需要的表单,如下所示:
db.collection.find({"totalCreatedForms.formName":"formtwo"}, data=>{res.send(data)})
有没有办法,我可以得到指定表单的formIndex的值。 这里我得到了“_id”的全部数据,我必须在前端再次过滤它。 但是,我想知道是否有查询来获取指定表单的值。
您需要以这种方式$
运算符:
db.collection.find({
"totalCreatedForms.formName": "formtwo"
},
{
"_id": 0,
"totalCreatedForms.formIndex.$": 1
})
查找查询有两个对象。
第一个匹配您要查找的元素。
第二个是指示哪些字段返回。 因此,不会返回_id
字段,并且从数组中,只会返回放置位置运算符的索引。
输出示例是这样的:
[
{
"totalCreatedForms": [
{
"formIndex": 1
}
]
}
]
请注意,mongo 是一个存储文档并返回文档的数据库,因此这是仅获取所需值而不是整个数组的最简单方法(无需聚合)。
示例在这里
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.