【问题标题】:How to query specific mongodb mapreduce fields?如何查询特定的 mongodb mapreduce 字段?
【发布时间】: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") }

标签: mongodb mapreduce field


【解决方案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
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-04-24
  • 2016-07-06
  • 2014-10-12
  • 2015-11-13
  • 1970-01-01
  • 1970-01-01
  • 2020-06-19
相关资源
最近更新 更多