我正在为我的一个小项目更新一个mongodb集合,在现有的字段中,我只需要更新一个单词。
示例:
{
"_id" : ObjectId("5faa46a6036e146f85a4afef"),
"name" : "Kubernetes_cluster_setup - kubernetes-cluster"
}"name": "Kubernetes_cluster_config -kubernetes-cluster"。Applied > $set更新整个字段,但是不应该删除-kubernetes-集群。
发布于 2020-11-10 08:37:40
尝试使用$replaceOne操作符。
你需要这样的聚合。
db.collection.aggregate([
{
"$match": {
"id": 0
}
},
{
"$set": {
"name": {
"$replaceOne": {
"input": "$name",
"find": "setup",
"replacement": "config"
}
}
}
}
])第一部分是查找元素(我已被id使用过),第二部分用于替换为字段name,即config的值setup。
示例这里
此外,如果要替换每个文档的字符串,可以使用以下查询:
db.collection.aggregate([
{
"$match": {
"name": {
"$regex": "setup"
}
}
},
{
"$set": {
"name": {
"$replaceOne": {
"input": "$name",
"find": "setup",
"replacement": "config"
}
}
}
}
])在这里,查询查找字段name包含单词setup的文档,然后替换为config。
示例这里
https://stackoverflow.com/questions/64764934
复制相似问题