Сравните две коллекции в MongoDB и покажите различия - PullRequest
0 голосов
/ 07 апреля 2019

Я пытаюсь сравнить две коллекции в mongodb.У меня есть Collection A и Collection B, и я хочу показать только различия.Как это сделать?Я думал, что это можно сделать с помощью Aggregation Framework, но я не получил ожидаемые значения.Я просто хочу увидеть, какой документ в Collection A отличается от документа Collection B.

Коллекция: A

{
    "_id" : ObjectId("x"),
    "p" : [ 
        {
            "t" : 1,
            "p" : 123
        }, 
        {
            "t" : 2,
            "p" : 123
        }
    ]
},
{
    "_id" : ObjectId("y"),
    "p" : [ 
        {
            "t" : 1,
            "p" : 234
        }, 
        {
            "t" : 2,
            "p" : 234
        }
    ]
}

Коллекция: B

{
    "_id" : ObjectId("x"),
    "p" : [ 
        {
            "t" : 1,
            "p" : 123
        }, 
        {
            "t" : 2,
            "p" : 538458 // OTHER VALUE HERE
        }
    ]
},
{
    "_id" : ObjectId("y"),
    "p" : [ 
        {
            "t" : 1,
            "p" : 234
        }, 
        {
            "t" : 2,
            "p" : 234
        }
    ]
}

1 Ответ

0 голосов
/ 07 апреля 2019

Вы можете экспортировать каждую коллекцию, используя mongoexport, это создаст файл со всеми документами, но убедитесь, что вы пропустите _id (документы могут быть идентичными, но будут иметь разные идентификаторы): mongoexport --db db_name --collection collection_name | sed '/"_id":/s/"_id":[^,]*,//' > file_name.json Тогда вы можетесравните два файла, используя diff.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...