更新查询中的Concat字符串字段值

时间:2018-12-21 12:52:26

标签: javascript node.js mongodb mongoose

我正在尝试在更新查询中连接一个字符串值,但是找不到在Mongoose上执行此操作的方法。

这是批量写入查询列表上的updateOne查询

{
updateOne: {
    filter: {
        accountId: Participant.accountId,
        region: Region
    },
    update: {
        $inc: {
            'accountData.analyzed': 1,
            'accountData.w': someVariable,
            // many more values...

        },
        $set: {
            'accountData.theStringField': theStringField + " some text"
        }
    },
    upsert: true,
    setDefaultsOnInsert: true
}
}

当然,在$ set上的查询不起作用。我写那是为了演示我正在尝试做的事情。

基本上我想做的是,将“ accountData.theStringField”与我想要的文本(“某些文本”)连接起来。因此,如果该值为“这是”,则它将被更新为“ 这是一些文字” 。是否可以在不先获取文档的情况下执行此操作?

我不是要使用聚合来执行此操作,因此请不要将其标记为重复项,因为它不是。

1 个答案:

答案 0 :(得分:0)

我认为这不会通过.update()方法起作用,但是可以使用$ concat运算符进行聚合: Append a string to the end of an existing field in MongoDB

然后可以用来更新现有对象。