我知道这是一个非常简单的问题,但我似乎无法找到满意的答案。另外,我是 Mongo 的新手。这显然没有帮助。
假设我有一组...用户,我想将mongo 中的$toUppername函数应用于带有_id 的记录字段ObjectId(1),ObjectId(2)但不应用于带有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"
}
]
}
Run Code Online (Sandbox Code Playgroud)
我想要:
{
[
{
"_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"
}
]
}
Run Code Online (Sandbox Code Playgroud)
我一直在使用 Mongo 的聚合(对于我在谷歌中找到的内容),但我得到的最远的是有一个返回“name”字段uppered的查询,但是:
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
}
Run Code Online (Sandbox Code Playgroud)
如果您不想更新寄存器以将字段名称更改为大写,您可以尝试以下代码:
use DATABASE_NAME;
db.CollectionName.find([find_criteria]).forEach(function(doc) {
db.CollectionName.update(
{ _id: doc._id},
{ $set : { 'FieldName' : doc.FieldName.toUpperCase() } },
{ multi: true }
)
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3940 次 |
| 最近记录: |