MongoDB和Mongoose:如何检索嵌套对象
MongoDB and Mongoose: How to retrieve nested Object
我有以下文档在我的mongodb集合:
{
"current" :
{
"aksd" : "5555",
"BullevardBoh" : "123"
},
"history" :
{ "1" : {
"deleted" : false,
"added" : false,
"date" : "21-08-2014"
}
},
{ "2" : {
"deleted" : false,
"added" : false,
"date" : "01-01-2013"
}
},
"_id" : ObjectId("53f74dad2cbfdc136a07bf16"),
"__v" : 0
}
我有很多这样的文档。现在我想用我的Mongoose/Express API实现两件事。
查询每个文档中所有嵌套的
"current"
,并将其检索为JSON对象,如:{"aksd":"5555","BullevardBoh":"123"},{..},{..}
.检索
"date"
小于给定日期的所有历史修订(1,2…)
你可以清楚地看到,这是我试图实现的一种版本控制。我也会感兴趣,如果这种数据结构将得到索引MongoDB,如果有可能有一个更好的方法。(例如,数组在对象内?)
这是不工作在MongoDB:
db.ips.findOne({current.aksd: {$exists:true}});
我认为这里缺少字段周围的引号:
db.ips.findOne({电流。aksd:{$存在:真正}});
这个应该可以工作:
db.ips.findOne({"current.aksd": {$exists:true}});
虽然Ritesh的回复是朝着正确方向迈出的一步,但我更希望获取文档内的当前对象文本及其成员,而不是整个文档。
1。)查询每个文档中所有嵌套的"current"
db.ips.find({"current":{$exists:true}}, {"current":1});
这将返回所有嵌套文档,其中aksd文字存在:
{ "current" : { "aksd" : "5555", "BullevardBoh" : "123" }, "_id" : ObjectId("53f74dad2cb3dc136a07bf16") }
...
2。)检索日期小于给定日期的历史修订:
db.ips.find({"history.date": {$lt: "01-01-2014"}},{history:{$elemMatch:{date: {$lt:"01-01-2014"}}}});
返回需要的嵌套日期字面值:
{ "historie" : [ { "date" : "01-01-2013", "added" : false, "deleted" : false } ], "_id" : ObjectId("53faf20f399a954b2b7736b6") }
相关文章:
- ExtJS 4.1-检索嵌套JSON的hasOne信息
- Parse.com 检索嵌套对象的值
- 从嵌套的JSON中检索数据到Morris.js xkey
- 如何在Firebase中使用Angularjs ng-repeat检索嵌套数据
- 如何使用 ng-repeat从嵌套的 json 对象中检索数据
- 在 Django 视图中检索嵌套的 JavaScript 对象作为字典
- 如何从嵌套在 JSON 中的数组中检索值
- 正在检索对象中嵌套的值
- MongoDB和Mongoose:如何检索嵌套对象
- 嵌套Json检索
- 使用try-catch检索嵌套属性的值.这是一个有效的方法吗?
- Meteor.js + MongoDB::从深度嵌套的数组中检索值
- 如何通过调整嵌套对象数组来检索文档
- 按键查找和检索对象值,包括嵌套对象
- 问题,用于创建从xml文件检索并以xHTML显示的嵌套列表
- 从本地嵌套的JSON对象中检索数据
- 如何在嵌套标记中检索标记纯文本
- 使用WordPress REST API嵌套第二个$.getJSON请求以检索类别名称/链接
- 将值从嵌套的 JSON 检索到 ng-repeat
- 正在从嵌套的Javascript对象中检索值