2017-04-07 54 views

回答

0

有沒有簡單的方法來做這樣的事情。你可以通過mongodb的map-reduce框架來完成。這是一個例子:

db.stuff.mapReduce(
function(){ 
    var key = 'id'; 
    var value_temp = '123'; 
    for (i in this['InnerDocument']){ 
     if (key === i.toLowerCase() && this['InnerDocument'][i] === value_temp){ 
      emit(key,1); 
     } 
    } 

    }, 
function(key,value){ 
    return Array.sum(value); 
    }, 
{out : {inline : 1}} 
)['results'][0]; 

如這裏MongoDB case insensitive key search提到的,沒有運營商這樣的事情。

0

這是不可能的。你可以做一個$or像這樣的查詢:

db.stuff.find({$or:[{"InnerDocument.id":"123"}, {"InnerDocument.Id":"123"}, {"InnerDocument.ID":"123"}]}).count(); 

但這是非常醜陋的。我建議你保持你的數據和你的字段命名約定乾淨和一致,所以你不必這樣做。