比较MongoDB中的两个Collection并显示差异

时间:2019-04-07 14:17:54

标签: node.js mongodb comparison

我正在尝试比较mongodb中的两个集合。我有Collection ACollection 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 :(得分:0)

您可以使用mongoexport导出每个集合,这将创建一个包含所有文档的文件,但请确保省略_id(文档可能相同,但具有不同的ID): mongoexport --db db_name --collection collection_name | sed '/"_id":/s/"_id":[^,]*,//' > file_name.json 然后,您可以使用diff比较这两个文件。