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