2016-04-21 91 views
2
db.collection.update({id: id_}, { 
    $set:{ 
     name: jp.name, 
    } 

    }, { 
    upsert:true 
    },function(err, result) { 
     res.json({data: result}); 
    }); 

我返回result以決定它是更新還是插入。我在客戶端查找nModified。如果是更新n修改返回1,否則如果是插入,則返回0.除了result我想返回id字段。將參數添加到mongodb中的更新查詢結果

result.id = id_; 
res.json({data: result}); 

但它沒有奏效。 如何使用更新查詢返回參數?

+0

你有一個錯字:'result.id = id_',但它應該是'result.id = _id' –

+0

不,不,ID_是不同的比_id。我將id設置爲新的id。 –

+0

我認爲問題可能出現在'result.id'字段中,你可以嘗試使用'result.docId' –

回答

2

你可以使用Underscore's extend方法來實現這一

var _ = require("underscore"), // npm install underscore to install 
    query = { "id": id_ }; 

db.collection.update(query, 
    { "$set": { "name": jp.name } }, 
    { "upsert": true }, 
    function(err, result) { 
     var r = _.extend(result.result, query); 
     res.json({data: r}); 
}); 
相關問題