Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
mongodb mapreduce中的where条件_Mongodb_Pymongo - Fatal编程技术网

mongodb mapreduce中的where条件

mongodb mapreduce中的where条件,mongodb,pymongo,Mongodb,Pymongo,如何在mongos mapreduce中指定条件,就像在mongos group函数中一样 我的数据就像 {lid:1000, age:23}, {lid:3000, age:23}, {lid:1000, age:24}. 我只想发射值为1000的lid发射(this.lid,this.age)。但这将发出所有值。我想在这里有个条件。地图上有什么减少的方法吗?我尝试在reduce函数中使用if条件进行过滤,但它不起作用您的映射函数是一个javascript函数。您可以让它做任何您想做的事情

如何在mongos mapreduce中指定条件,就像在mongos group函数中一样

我的数据就像

{lid:1000, age:23}, {lid:3000, age:23}, {lid:1000, age:24}. 

我只想发射值为1000的lid<代码>发射(this.lid,this.age)。但这将发出所有值。我想在这里有个条件。地图上有什么减少的方法吗?我尝试在reduce函数中使用if条件进行过滤,但它不起作用

您的映射函数是一个javascript函数。您可以让它做任何您想做的事情,例如:

if (this.lid == 1000) emit(whatever);

您可以在
query
参数中执行此操作。从文档页面:

db.runCommand(
{mapreduce:,
地图:,
减少:

-->[,query:]请提供代码,而不是口头描述,因为口头描述实际上无法说明您在实际中尝试了什么。使用
query
参数更好,它可以使用一些索引来提高性能。
db.runCommand(
 { mapreduce : <collection>,
   map : <mapfunction>,
   reduce : <reducefunction>

   --> [, query : <query filter object>] <--

   [, sort : <sorts the input objects using this key. Useful for optimization, like sorting by the emit key for fewer reduces>]
   [, limit : <number of objects to return from collection>]
   [, out : <see output options below>]
   [, keeptemp: <true|false>]
   [, finalize : <finalizefunction>]
   [, scope : <object where fields go into javascript global scope >]
   [, verbose : true]
 }
);