以下'cars.$.'+item
串联不适用于MongoDB查询。
循环应该查询'cars.color'
,'cars.year'
,'cars.manufacturer'
你怎么写它,所以它通过循环是否正常?
let car ={
color: 'blue',
year: 2007,
manufacturer: 'Honda'
}
Object.keys(car).forEach(key => {
col.updateOne({'cars.$.'+key: car[key]});
});
您需要方括号来在JS中动态构建对象键:
col.updateOne(query, { $set: {['cars.$.'+key]: car[key]} });
另外,updateOne
您可以构建一条$set
语句,而不是在多次调用数据库的循环中运行:
let car ={
color: 'blue',
year: 2007,
manufacturer: 'Honda'
}
let set = {};
Object.keys(car).forEach(key => { set['car.' + key] = car[key] });
let update = { $set: set }
console.log(update);
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句