MongoDB用现有字段id替换_id字段
我有一个现有的mongo系列。内部的每个对象看起来都类似于此:MongoDB用现有字段id替换_id字段,mongodb,mongodb-query,Mongodb,Mongodb Query,我有一个现有的mongo系列。内部的每个对象看起来都类似于此: { "_id": ObjectId("..."), "Id": 4321, ... } 我拥有的“Id”字段对于每个对象都是唯一的 是否可以运行db.collection.update查询,以便将“\u id”字段替换为“id”的内容 i、 e 对于mongo版本4.0.10,以下查询可以获得预期的输出: db.collection.aggregate([ { $addFields:{
{
"_id": ObjectId("..."),
"Id": 4321,
...
}
我拥有的“Id”
字段对于每个对象都是唯一的
是否可以运行db.collection.update
查询,以便将“\u id”字段替换为“id”的内容
i、 e
对于mongo版本4.0.10,以下查询可以获得预期的输出:
db.collection.aggregate([
{
$addFields:{
"_id":"$Id"
}
},
{
$project:{
"Id":0
}
},
{
$out:"collection"
}
])
数据集:
{ "_id" : ObjectId("5d557c5f7c780d119a01a6de"), "Id" : 4321 }
{ "_id" : ObjectId("5d557c5f7c780d119a01a6df"), "Id" : 3412 }
{ "_id" : ObjectId("5d557c5f7c780d119a01a6e0"), "Id" : 1234 }
输出:
{ "_id" : 4321 }
{ "_id" : 3412 }
{ "_id" : 1234 }
我们正在对“collection”执行聚合,并用聚合的输出替换旧数据。对于mongo 4.0.10版,以下查询可以获得预期的输出:
db.collection.aggregate([
{
$addFields:{
"_id":"$Id"
}
},
{
$project:{
"Id":0
}
},
{
$out:"collection"
}
])
数据集:
{ "_id" : ObjectId("5d557c5f7c780d119a01a6de"), "Id" : 4321 }
{ "_id" : ObjectId("5d557c5f7c780d119a01a6df"), "Id" : 3412 }
{ "_id" : ObjectId("5d557c5f7c780d119a01a6e0"), "Id" : 1234 }
输出:
{ "_id" : 4321 }
{ "_id" : 3412 }
{ "_id" : 1234 }
我们正在对“collection”执行聚合,并用聚合输出替换旧数据。您使用的是哪个mongo版本?是一次性更新吗?@MrS.Sharma版本4.0.10。是的,这是一次性更新。您使用的是哪个mongo版本?是一次性更新吗?@MrS.Sharma版本4.0.10。是的,这是一次更新!我正在导入另一个数据库,一旦我消除了重复记录,这非常有效:)谢谢!我正在导入另一个数据库,一旦我消除了重复记录,这就非常有效:)