gpt4 book ai didi

Mongodb:如何将某些记录的某些字段设为大写?

转载 作者:行者123 更新时间:2023-12-01 22:36:16 25 4
gpt4 key购买 nike

我知道这是一个非常简单的问题,但我似乎无法找到满意的答案。另外,我是 Mongo 的新手。这显然没有帮助。

假设我有一组...用户,我想应用 $toUpper在 mongo 中函数到具有 _id ObjectId(1)ObjectId(2) 的记录的 name 字段,而不是具有 ObjectId(3).

所以我有这个:

{
[
{
"_id": ObjectId("1"),
"name": "user 1",
"address": "Street 1"
},
{
"_id": ObjectId("2"),
"name": "user 2",
"address": "Street 2"
},
{
"_id": ObjectId("3"),
"name": "user 3",
"address": "Street 3"
}
]
}

我想要:

{
[
{
"_id": ObjectId("1"),
"name": "USER 1",
"address": "Street 1"
},
{
"_id": ObjectId("2"),
"name": "USER 2",
"address": "Street 2"
},
{
"_id": ObjectId("3"),
"name": "user 3",
"address": "Street 3"
}
]
}

我一直在玩 Mongo 的 aggregation (对于我在谷歌中找到的),但我得到的最远的是有一个返回“名称”字段的查询uppered,但是:

  1. 它返回数据库中的所有记录(不仅是 ObjectId("1") 和ObjectId("2")
  2. 它不会将更改写入数据库
  3. 它从返回的记录中删除地址字段(不用说,我不想丢失)

db.user.aggregate([{$project: {"name":{$toUpper:"$name"}}}])
{
"result" : [
{
"_id" : ObjectId("1"),
"name" : "USER 1"
},
{
"_id" : ObjectId("2"),
"name" : "USER 2"
},
{
"_id" : ObjectId("3"),
"name" : "USER 3"
}
],
"ok" : 1
}

最佳答案

如果您不想更新寄存器以将字段名称更改为大写,您可以尝试以下代码:

use DATABASE_NAME;
db.CollectionName.find([find_criteria]).forEach(function(doc) {
db.CollectionName.update(
{ _id: doc._id},
{ $set : { 'FieldName' : doc.FieldName.toUpperCase() } },
{ multi: true }
)
});

关于Mongodb:如何将某些记录的某些字段设为大写?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22818889/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com