MongoDB用现有字段id替换_id字段

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:{

我有一个现有的mongo系列。内部的每个对象看起来都类似于此:

{
  "_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。是的,这是一次更新!我正在导入另一个数据库,一旦我消除了重复记录,这非常有效:)谢谢!我正在导入另一个数据库,一旦我消除了重复记录,这就非常有效:)