【问题标题】:How do you pass in variables that concatenate in MongoDB queries?如何传递在 MongoDB 查询中连接的变量?
【发布时间】:2020-02-29 15:39:24
【问题描述】:

下面的 '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]});
});

【问题讨论】:

    标签: javascript mongodb mongoose mongodb-query concatenation


    【解决方案1】:

    你需要方括号在 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);

    更多关于如何使用$sethere

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-22
    • 2016-05-16
    • 2014-03-01
    • 2018-02-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多