mongodb mapreduce中的where条件
如何在mongos mapreduce中指定条件,就像在mongos group函数中一样 我的数据就像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函数。您可以让它做任何您想做的事情
{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]
}
);