【发布时间】:2017-11-11 12:59:51
【问题描述】:
尝试使用以下方法更新 mongodb 中的文档:
module.exports.addAcc = function(id , acc, callback) {
let strAcc = escape(JSON.stringify(acc, null, 4));
let pushAcc = '{'+ ' $push :'+ '{ "pf.acc" : ' +strAcc + '}}' ;
let query = '{ "userid": ' + id + '}';
console.log('udpate <<',query,',' ,pushAcc, '>>'); <=====
Api.updateOne(query, pushAcc, {upsert: false}, callback);
};
它确实给出了以下结果:
{
"ok": 0,
"n": 0,
"nModified": 0
}
当我捕捉到 console.log 行中的内容并在 Api.updateOne 行中替换它时,如下所示:
Api.updateOne({ "userid": 1197} , { $push :{ "pf.acc" : {"accid":1496998168,"accbr":65875}}}, {upsert: false}, callback);
有效!!
{
"n": 1,
"nModified": 1,
"ok": 1
}
知道为什么吗?
/KOul
【问题讨论】:
标签: node.js mongodb mongodb-query