如何在MongoDb集合中的数组字段中进行元素投影?

10
{
    "id": "12345",
    "schools": [
                {
                    "name": "A",
                    "zipcode": "12345"
                },
                {
                    "name": "B",
                    "zipcode": "67890"
                }
            ]
}

期望输出:

{
    "id": "12345",
    "schools": [
                {
                    "zipcode": "12345"
                },
                {
                    "zipcode": "67890"
                }
            ]
}

我目前的部分代码用于检索所有内容:

collection.find({}, {id: true, schools: true})

我正在查询整个集合。但是我只想返回学校元素的邮政编码部分,而不是其他字段(因为实际的学校对象可能包含更多我不需要的数据)。我可以检索所有内容并在代码中删除那些不需要的字段(比如学校的“名称”),但这不是我想要的。我想进行一个MongoDb查询。

1个回答

14
您可以使用 点号表示法(dot notation) 来投影嵌套在数组中的文档中的特定字段。
db.collection.find({},{id:true, "schools.zipcode":1}).pretty()

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接