从mongo shell中找出mongoDB上2个文档之间的区别

otm*_*ger 7 mongodb

我正在使用mongodb 2.4.4并且我想比较2个文档,然后仅使用mongo shell打印它们的差异.有没有办法比较它们?就像是:

db.collection.compare({first_doc: objectID("blablalba"), sec_doc: objectID("blalba2")})
Run Code Online (Sandbox Code Playgroud)

输出就像是

{diff1:{latitude:{first_doc:10.000, sec_doc:20.000}},diff2:{}}
Run Code Online (Sandbox Code Playgroud)

纬度是具有差异的字段的名称.

输出不需要完全相同,但提供相同的功能.谢谢

And*_*ich 5

只需声明本机javascript函数,它可以以您需要的方式比较两个对象,然后编写如下代码:

obj1 = db.test.findOne({"_id" : ObjectId("5176f80981f1e2878e840888")})
obj2 = db.test.findOne({"_id" : ObjectId("5176f82081f1e2878e840889")})
difference(obj1, obj2)
Run Code Online (Sandbox Code Playgroud)

一些原生的javascript差异函数可以在这里这里找到

PS你也可以从shell加载一些第三方js libs:

load("D:\difference.js")
Run Code Online (Sandbox Code Playgroud)

希望这有帮助.