我想将一个值附加到现有字段。我有一个 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"
)));
您需要的是流水线更新。
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);