从mongo查询特定数据,而不是整个记录

时间:2018-06-09 05:19:38

标签: javascript mongodb nested-queries

我想从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
];

我只想获取“凯斯宾王子”这本书的数据。所以:

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

我的查询如下:

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

这会返回整个记录 - 而不是“一大堆其他记录”,实际上记录包含我指定的数据但我不想要所有其他数据 - 只是那个数据书。我查看了mongo docs以及more docs,但我没有看到任何有用的信息。我确实看到了“投影”选项,但这似乎是处理对象的字段,而不是数组项......

**注意:我是mongo和数据库操作的新手...我觉得我可能需要制作许多小型集合,或者编写一些服务来获取整个集合并给我一点点我需要。如果是这样,请告诉我,但我赞成一种不那么复杂的方法

0 个答案:

没有答案