0

假设在数据库中我有几个字段,并且某些记录缺少一些字段。
例如:
对于下面的记录,我有一个 map reduce 定义如下,因为 opt1 和 opt2 不在所有记录中,这个 map-reduce 不会产生任何结果。

但是,如果我从 map 函数中删除 opt1 和 opt2,它会给出具有 opt1 和 opt2 的所有结果。有人可以帮我解决这个问题吗?我需要找到所有 opt1 或 opt2 大于零的记录。

function Map() { emit( 
this.id, { "name" : this.name, "opt1": this.opt1, "opt2": this.opt2} );}

function Reduce(key, values) {  return values[0]; }

Query : { $or : [ {'opt1': {'$gt': 0} }, {'opt2': {'$gt': 0}}] }

Inline : true

------rec 1 ----- { id : 1 opt1 : 34  opt2 : 46 name : one }

------rec 2------- {id : 2 opt1 : 32 name : two }

----- rec 3 ------ {id : 3 name : three }

{---- rec 4 ----- id : 4 opt2 : 22 name: four }

--------------------------------
4

0 回答 0