1
得到了一份工作比較sql和nosql數據,用於我的大學課程報告。我正在進行內部連接測試,並且mongo做了一些等同於地圖縮小但有問題的東西。搜索地圖/減少
查找所有記錄都是正確的,從特定的id中提取行也是正確的,但我無法搜索文本或其他屬性。
我的收藏:
y_um_milhao{id_y_um_milhao, col_descricao}
x_um_milhao{id_x_um_milhao, col_decimal, fk_y_um_milhao}
我的map/reduce:
var mapX_um_milhao = function(){
var output = {id_x: this.x_um_milhao,olDecimal:this.col_decimal, id_x:this.id_x_um_milhao}
emit (this.id_x_um_milhao, output);
};
var mapY_um_milhao = function(){
var output = {y_id: this.y_um_milhao, colDescricao:this.col_descricao, id_y:this.id_y_um_milhao}
emit(this.id_y_um_milhao, output);
};
var reduce_um_milhao = function(key, values){
var outs = {colDescricao:null, id_y:null, colDecimal:null, id_x:null};
values.forEach(function(v){
if(outs.colDescricao == null){
outs.colDescricao = v.colDescricao
}
if(outs.id_y == null){
outs.id_y = v.id_y
}
if(outs.colDecimal == null){
outs.colDecimal = v.colDecimal
}
if(outs.id_x == null){
outs.id_x = v.id_x
}
});
return outs;
};
result = db.x_um_milhao.mapReduce(mapX_um_milhao, reduce_um_milhao, {out: {reduce: 'x_y'}});
result = db.y_um_milhao.mapReduce(mapY_um_milhao, reduce_um_milhao, {out: {reduce: 'x_y'}});
求所有記錄:
db.x_y.find()
通過ID申請註冊:
db.x_y.find({_id:1)
結果:
{ "_id" : 1, "value" : { "colDescricao" : "Teste TCC1", "id_y" : 1, "colDecimal" : 13.38, "id_x" : 1 } }
現在我不能搜索 「colDescricao」 他怎麼能這樣做?
PS:很抱歉的英語,不說話,用谷歌翻譯
返回的錯誤: 語法錯誤:意外的標記。 – 2014-11-05 16:02:42
小錯字:'db.x_y.find({「value.colDescricao」:「Teste TCC1」})' – wdberkeley 2014-11-05 16:16:39
完美!現在是,我不知道該如何謝謝你。如果我想使用$ group並且$ sum可以遵循相同的邏輯? – 2014-11-05 16:29:55