2013-08-24 2 views
0

몽구스를 사용하여 MongoDB 데이터베이스의 데이터를 업데이트하는 Node.js 앱이 있습니다.몽구스의 model.update가 Node.js에서 작동하지 않습니다.

몽구스 모델을 설정 했으므로 model.find 및 model.remove 함수를 성공적으로 사용할 수는 있지만 model.update 함수를 사용할 수 없습니다.

아무도 도와 줄 수 있습니까?

/* ------------------------ Finding/Querying works ---------------------- 
Flot.find({ "label": "Trips Per Day"}, function (err, docs) { 
    res.jsonp(docs || err); 
}); 
*/ 



/* ------------------------ Removing works ----------------------- 
Flot.remove({ "label": "Trips Per Client" }, function (err) { 
    if (err) return handleError(err); 
    res.json(err || "removed"); 
}); 
*/ 


var conditions = { "label": "Average Tons per Delivery" }; 
var update = { "label": "Average Tons per Delivery 2" }; 
var options = { }; 
var callback = function callback(err, numberAffected, rawResponse) { 
    if (err) return handleError(err); 

    console.log('Error: ', err); 
    console.log('NumberAffected: ', numberAffected); 
    console.log('RawResponse: ', rawResponse); 

    res.json(err || rawResponse || numberAffected); 
}; 

Gage.update(conditions, update, options, callback); 
+0

뭘 하려는지는 모르겠다. – JohnnyHK

+0

당신은 발견에'Flot' 모델을 사용하고 있지만 업데이트에서'Gage'를 사용하고 있습니다. – JohnnyHK

+0

Flot과 Gage는 모두 다른 컬렉션/모델이므로 두 가지 모델 모두에서 작동하도록 노력하고 있습니다. 오류는 null로 기록되고 numberAffected는 0으로 표시되며 rawResponse는 정의되지 않은 것으로 표시됩니다. – William

답변

1

나는 이것을 node-mongodb-native와 함께 사용할 수있었습니다. 나는 몽구스가 왜 효과가 없었는지 아직도 모르겠지만, 적어도 나는 일할 것이있다.

var query = {"label": "Average Tons per Delivery"}; 
var update = {"type": "vertical"}; 
var options = {}; 

MongoClient.connect('mongodb://localhost/db', function(err, db) { 
    if(err) throw err; 

db.collection('justgage').findAndModify(
    query, 
    [['_id','asc']], 
    {$set: update}, 
    options, 
    function(err, object) { 
     res.jsonp("Ok"); 
    }); 
}); 
관련 문제