我需要插入元素列表并检查元素是否存在于数据库中,如果元素存在则元素将被更新。
我使用了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?
感谢。
答案 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) {})