使用NodeJS的MongoDB upsert数组

时间:2018-01-22 14:43:58

标签: arrays node.js mongodb

我需要插入元素列表并检查元素是否存在于数据库中,如果元素存在则元素将被更新。

我使用了upsert和array:

    dbo.collection("Ebooks").update(arrayValues, {upsert: true, multi: true},function(err, res) {
         if (err) throw err;
         console.log("finish");
         db.close();
    });  

数组例如:

[{_id: 10, name='Teste1'}, {_id: 11, name='Teste2'}]

并且正在返回此错误:

MongoError:BSON字段' update.updates.q'是错误的类型'数组',期望类型'对象'

如何将Array转换为此Object?

感谢。

1 个答案:

答案 0 :(得分:1)

不确定,但看起来你没有通过查询(第一个参数),应该更新哪些数据。

dbo.collection("Ebooks").update((), arrayValues, {upsert: true, multi: true},function(err, res) {})

dbo.collection("Ebooks").update((_id:someValue), arrayValues, {upsert: true, multi: true},function(err, res) {})