2016-04-23 60 views
0

一個JSON文件,如果我查詢的MongoDB用一個簡單的查詢像這樣用貓鼬:不能看到現場加與和的NodeJS貓鼬

User 
.find() 
.where('address.loc').near({ center: [lat,lng], maxDistance: 1 }) 
.exec(function(err, result) { 

    if (err) { 
    request.log(['server', 'database', 'error'], 'An error occured during the execution of the query'); 
    }else{ 
    for(var i=0;i<result.length;++i){ 
     result[i]["distance"] = 5; 
    } 
    console.log(result[0].distance); 
    console.log(result[0]) 
    } 

}); 

第一的console.log打印:5

但第二個打印:

{ address: { loc: [ 37.0814402, 15.287517 ], value: 'viale tica' }, tags: [ 'Primi', 'Secondi' ], __v: 0, cap: 96100, ad_number: 15, business_email: '[email protected]', _id: 571b3b78249a2e160b4eee3f }

爲什麼這個文件,結果陣列中的其他人都沒有場距離?

回答

1

因爲result[0]是一個貓鼬文檔對象。當你呼叫console.log(result[0])結果被轉換成字符串(用貓鼬文件0​​功能)。但貓鼬文件不包含distance字段。

做你想做什麼,你應該將每個文件對象:

var objects = results.forEach(results, function(res) { 
    res = res.toObject(); 
    res["distance"] = 5; 
    return res; 
}); 
console.log(objects[0].distance); 
console.log(objects[0]); 

http://mongoosejs.com/docs/api.html#document_Document-toObject

+0

感謝。我沒有考慮貓鼬的物體。 –