如何将 Spring Boot 中的值附加到 MongoDB (Java) 中的字段?

问题描述 投票:0回答:1

我想将一个值附加到现有字段。我有一个 mongoDB 集合 Person,该 Person 文档如下所示:

{
    "_id": {
        "$oid": "64d4b688638bed43641ca2fb"
    },
    "email": "gvvg@gv",
    "contact": {
        "address": "vffv",
        "age": 22,
        "brand": null,
        "email": "gvvg@gv",
        "name": "Bruce"
    }
}

我想运行一个查询,其中“Wayne”被附加到“name”字段,以便存储在 mongo 中的最终数据将是“Bruce Wayne”。

我尝试了下面的代码,但它附加了数组并且不起作用。

update.set(
          "name",
          new Document("$concat",
          List.of(
          "name" +
          "wayne"
          )));
java mongodb spring-boot spring-data spring-data-mongodb
1个回答
0
投票

您需要的是流水线更新

db.collection.update(
    {},
    [
        {$set: 
            {"contact.name": {$concat: ["$contact.name"," Wayne"]}}
        }
    ]
);

在SpringBoot中,

Query query = Query.query(<your filter criteria>);
AggregationUpdate update = Aggregation.newUpdate()
    .set("contact.name").toValue(
        StringOperators.Concat.valueOf("contact.name").concat(" Wayne")
    );

mongoTemplate.updateMulti(query, update, <your collection>.class);
© www.soinside.com 2019 - 2024. All rights reserved.