【问题标题】:Find difference between 2 documents on mongoDB from the mongo shell从 mongo shell 查找 mongoDB 上的 2 个文档之间的差异
【发布时间】:2017-12-11 22:21:11
【问题描述】:

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

db.collection.compare({first_doc: objectID("blablalba"), sec_doc: objectID("blalba2")})

输出会是这样的

{diff1:{latitude:{first_doc:10.000, sec_doc:20.000}},diff2:{}}

其中 latitude 是有差异的字段的名称。

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

【问题讨论】:

  • 您将编写 JS 来进行所需的比较并执行它。你试过什么了?如果你想经常重复,你可以关注:docs.mongodb.org/manual/tutorial/…
  • 其实我只需要这个来调试。我认为直接从 mongo shell 是可能的。不过还是谢谢你的链接,很酷。
  • 您认为 mongo shell 可以直接实现什么?您也可以在那里编写脚本。如果代码长度超过几行,则可能会变得难以管理/编辑。也可以传一个JS文件执行到shell:docs.mongodb.org/manual/tutorial/…mongo localhost:27017/test myjsfile.js

标签: mongodb


【解决方案1】:

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

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

一些原生javascript差异函数可以找到here或者here

附:您还可以像这样从 shell 加载一些第三方 js 库:

load("D:\difference.js")

希望对您有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-07-12
    • 2017-09-29
    • 2021-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-04
    • 2014-02-02
    相关资源
    最近更新 更多