当前位置: 首页 > 编程笔记 >

MongoDB查询以使用mapReduce()函数显示替代文档并发出偶数字段值

田翰林
2023-03-14
本文向大家介绍MongoDB查询以使用mapReduce()函数显示替代文档并发出偶数字段值,包括了MongoDB查询以使用mapReduce()函数显示替代文档并发出偶数字段值的使用技巧和注意事项,需要的朋友参考一下

让我们创建一个包含文档的集合-

> db.demo636.insert({id:1});
WriteResult({ "nInserted" : 1 })
> db.demo636.insert({id:2});
WriteResult({ "nInserted" : 1 })
> db.demo636.insert({id:3});
WriteResult({ "nInserted" : 1 })
> db.demo636.insert({id:4});
WriteResult({ "nInserted" : 1 })
> db.demo636.insert({id:5});
WriteResult({ "nInserted" : 1 })
> db.demo636.insert({id:6});
WriteResult({ "nInserted" : 1 })

find()方法的帮助下显示集合中的所有文档-

> db.demo636.find();

这将产生以下输出-

{ "_id" : ObjectId("5e9c127b6c954c74be91e6d2"), "id" : 1 }
{ "_id" : ObjectId("5e9c127e6c954c74be91e6d3"), "id" : 2 }
{ "_id" : ObjectId("5e9c127f6c954c74be91e6d4"), "id" : 3 }
{ "_id" : ObjectId("5e9c12816c954c74be91e6d5"), "id" : 4 }
{ "_id" : ObjectId("5e9c12836c954c74be91e6d6"), "id" : 5 }
{ "_id" : ObjectId("5e9c12896c954c74be91e6d7"), "id" : 6 }

以下是实现mapReduce()和仅显示偶数值的查询-

> db.demo636.mapReduce(
...    function () {
...       oddCounter++;
...       var id= this._id;
...       delete this._id;
...       if ( oddCounter % d != 0 )
...       emit(id, this );
...    },
...    function() {},
...    {
...       "scope": { "oddCounter": 0, "d": 2 },
...       "out": { "inline": 1 }
...    }
... )

这将产生以下输出-

{
   "results" : [
      {
         "_id" : ObjectId("5e9c127b6c954c74be91e6d2"),
         "value" : {
            "id" : 1
      }
   },
   {
      "_id" : ObjectId("5e9c127f6c954c74be91e6d4"),
      "value" : {
         "id" : 3
      }
   },
   {
      "_id" : ObjectId("5e9c12836c954c74be91e6d6"),
      "value" : {
         "id" : 5
      }
   }
],
"timeMillis" : 29,
"counts" : {
   "input" : 6,
   "emit" : 3,
   "reduce" : 0,
   "output" : 3
   },
"ok" : 1
}
 类似资料:
  • 问题内容: 我已经流式传输了大约25万条推文并将其保存到MongoDB中,在这里,我正在检索它,如您所见,基于推文中出现的单词或关键字。 我想做的是使用Map- Reduce并基于关键字进行分类,并将其传递给reduce函数以计算每个类别下的tweet数量,有点像您在这里可以看到的。在该示例中,他正在计算页面数,因为它是一个简单的数字。我想做类似的事情: 然后使用reduce函数来获取计数,就像在

  • 我需要向MongoDB查询字段的编号:姓名、电话、电子邮件。查询应该支持语法:执行查询的更好方法是什么: 用$或查询字段数 用上述字段的值和该字段的多键索引创建数组字段 示例集合包含以下文档 当我发现所有带有姓名、电话或电子邮件且包含的文档时,应返回文档1和3。

  • 如何查询从mongodb MapReduce生成的集合中的特定字段? 要只检索输出集合中的lastname字段,应输入什么字段? 结果应为: {“lastname”:“Doe”} >版本() 版本:2.2.2 >db.test.save({first:“john”,last:“doe”}) >db.test.find() {“_id”:ObjectId(“50bc001A8E97247957C60

  • 我试图用C#在MongoDB中用嵌套数组文档实现文本搜索功能。我有一个以下格式的MongoDB集合。

  • 婴儿步 我尝试使用聚合管道,并在最后一步中通过匹配和查找它们的内容来替换。我不太熟悉通过聚合管道解决这个问题。

  • 主要内容:find() 方法,pretty() 方法,findOne() 方法,条件查询,AND条件语句,OR 条件语句,AND 和 OR 联合使用前面我们介绍了怎么将文档插入到集合中,本节我们来介绍一下如何从集合中查询指定的文档。 find() 方法 想要查询集合中的文档,可以使用 MongoDB 中的 find() 方法,find() 方法可以将查询结果以非结构化的方式展示出来,其语法格式如下: db.collection_name.find(query, projection) 语法说明如