如何查询特定的 mongodb mapreduce 字段?

Posted

技术标签:

【中文标题】如何查询特定的 mongodb mapreduce 字段?【英文标题】:How to query specific mongodb mapreduce fields? 【发布时间】:2012-11-20 11:48:40 【问题描述】:

如何查询从 mongodb mapReduce 生成的集合中的特定字段? 我应该输入什么来仅检索输出集合中的姓氏字段? 结果应该是: "姓氏" : "Doe"

> 版​​本() 版本:2.2.2 > db.test.save( first: "John", last: "Doe" ) >db.test.find() "_id" : ObjectId("50bc001a8e97247957c6000f"), "first" : "John", "last" : "Doe" > db.test.mapReduce(function() emit( this._id, firstname:this.first, lastname:this.last ) , function(key, value) return null; , out :减少:'输出') “结果”:“输出”, “时间米利斯”:6, “计数”: “输入”:1, “发射”:1, “减少”:0, “输出”:1 , “好”:1, >db.output.find() "_id" : ObjectId("50bc001a8e97247957c6000f"), "value" : "firstname" : "John", "lastname" : "Doe" >db.output.find( , _id:0 ) “价值”:“名字”:“约翰”,“姓氏”:“Doe”

【问题讨论】:

我想你已经尝试过了 >db.output.find( , lastname:1 ) ? "_id" : ObjectId("50bc001a8e97247957c6000f") 【参考方案1】:

在不修改 map-reduce 的情况下,您可以使用 find 最接近的是:

db.output.find( , _id:0, 'value.lastname':1 )

【讨论】:

"value" : "lastname" : "Doe" 还有什么方法可以重做 map-reduce 以产生这些结果? @pent 你到底想用这个做什么?就目前的形式而言,这是一种荒谬的 map-reduce。 @pent 我在想有一种方法可以使输出变平以删除 value 级别,但似乎没有:jira.mongodb.org/browse/SERVER-2517

以上是关于如何查询特定的 mongodb mapreduce 字段?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 mongoose/mongodb 查询子文档中使用 mapreduce?

如何在 mongoose/mongodb 查询子文档中使用 mapreduce?

基于MongoDB分布式存储进行MapReduce并行查询

用mongodb的mapreduce可以加两个条件吗

如何仅返回 Spring Data MongoDB 中查询的特定字段?

mongodb学习3---mongo的MapReduce