首页 > 解决方案 > 从 mongo 查询特定数据,而不是整个记录

问题描述

我只想从 mongo.db 中提取相关数据。假设我有一个集合“库”,它看起来像:

[
    {
        "section": "Fantasy",
        "series": {
            "ChroniclesOfNarnia": {
                "books": [
                    {
                        "title": "The Lion, the Witch, and the Wardrobe",
                        "author": "CS Lewis",
                        "bookNum": 1
                    },
                    {
                        "title": "Prince Caspian",
                        "author": "CS Lewis",
                        "bookNum": 2
                    }
                ]
            }
        },
    },
    //a whole bunch of other records
];

我只想获取“Prince Caspian”一书的数据。所以:

{
    "title": "Prince Caspian",
    "author": "CS Lewis",
    "bookNum": 2
}

我的查询如下所示:

db.getCollection('Library').find({"section.series.ChroniclesOfNarnia.books.title": "Prince Caspian"});

这将返回整个记录——而不是“一大堆其他记录”,实际上该记录包含我指定的数据,但我不想要所有其他数据——只是那本书的数据。我查看了mongo 文档以及更多文档,但没有看到任何帮助。我确实看到了“投影”选项,但这似乎处理对象的字段,而不是数组项......

**注意:我通常是 mongo 和数据库操作的新手......我突然想到我可能需要制作许多小集合,或者编写一些服务来获取整个集合并只给我我需要的一点。如果是这样,请告诉我,但我更喜欢一种不太复杂的方法

标签: javascriptmongodbnested-queries

解决方案


推荐阅读