2014-11-05 4 views
1

получил сравнение данных sql и nosql для моего отчета для курса колледжа. Я делаю внутреннее тестирование, и монго сделал что-то, что эквивалентно уменьшению карты, но у меня проблемы.Поиск по карте/Уменьшить

Найти все записи правильно, выборки строк из определенного идентификатора также верны, но я не могу найти текст или другой атрибут.

Мои коллекции:

y_um_milhao{id_y_um_milhao, col_descricao} 
x_um_milhao{id_x_um_milhao, col_decimal, fk_y_um_milhao} 

Моя карта/уменьшить:

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: Извините за английский, не говорить и использовать Google переводчик

ответ

2

Вы можете искать «colDescricao», как это:

db.x_y.find({value.colDescricao : "Teste TCC1"}) 
+0

возвратил ошибку: SyntaxError: Неожиданный маркер. –

+0

маленькая опечатка: 'db.x_y.find ({" value.colDescricao ":" Teste TCC1 "})' – wdberkeley

+0

Отлично! Теперь это было, я не знаю, как поблагодарить вас. Если я хочу использовать $ group, а $ sum может следовать той же логике? –

Смежные вопросы