javascript - 从 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 和数据库操作的新手......我突然想到我可能需要制作许多小集合,或者编写一些服务来获取整个集合并只给我我需要的一点。如果是这样,请告诉我,但我更喜欢一种不太复杂的方法
解决方案
推荐阅读
- python - Pandas Series:ValueError:Series 的真值不明确。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()
- vue.js - 在子函数上使用父道具
- spring-boot - 如何处理 Spring Boot 2.4.5 中的错误页面?
- entity-framework - Entity Framework Core 多对多解决歧义
- node.js - TypeORM:在没有专用 ormconfig 文件的情况下生成迁移
- php - 如何使用字符串操作解决“解码字符串问题”?
- javascript - 可变范围 JavaScript - 事件
- reactjs - 如何强制编译并忽略@typescript-eslint 错误?
- list - 在列表中查找模式,序言
- javascript - 动态路由:React/TypeScript