在Mongo Compass上通过ObjectId进行搜索

114
如何使用Mongo Compass并按ObjectID搜索?我一直在寻找相关文档,但是没有找到任何有用的信息。我尝试过以下操作:
{ "_id" : "58f8085dc1840e050034d98f" }

{ "$oid" : "58f8085dc1840e050034d98f" }

{ "id" : "58f8085dc1840e050034d98f" }

这些方法似乎都无法使用,让人感到非常沮丧。另外,顺便问一下 - 在Compass中显示文档时是否可以设置跳过/限制呢?

5个回答

198

更新,Compass的新版本现在支持查询ObjectId,类似于使用mongo shell进行查询(在这些新版本中,$oid语法将不起作用):

{_id: ObjectId('58f8085dc1840e050034d98f')}
如果你使用的是1.10.x之前的旧版本,那么请在查询框中输入以下内容:
{"_id":{"$oid":"58f8085dc1840e050034d98f"}}

值得一提的是,在用户界面中,您可以点击其中一个 _ids ,它会自动填充查询框中的查询,基于您所点击的内容。您还可以按住 Shift 键单击多个字段来创建复合 (和-ed) 查询条件,或者您可以单击并拖动以选择范围。

对于版本 >= 1.8.x,文档选项卡下浏览时支持跳过和限制。在查询栏右侧点击“选项”按钮。有关说明和详细信息,请参见 Query Bar 文档。

模式选项卡仅支持限制,因为这将对文档进行抽样,而跳过在这种情况下没有意义。

要点击 _ids,您需要位于模式选项卡上。如果您的 _ids 是 ObjectId 类型,则分布可视化将显示为日期范围,并且您可以在一条或多条线上拖动以基于 _id 填充查询。如果您的 _ids 是其他类型,则部分显示出来,您可以单击、拖动或按住 Shift 键单击它们。


请看我编辑后的答案中关于点击_id的注释。这会让你的生活更加轻松愉快。 :-) - helmy
@helmy 这个还能用吗?我点击了“_id”但是没有反应。 - nachocab
1
@nachocab,您需要在“SCHEMA”部分中单击要查询的值。以下是手册中相关的部分:https://docs.mongodb.com/compass/current/schema/#build-query - danii
我只是在想-为什么“$oid”被弃用了?在源代码中,需要将ObjectID导入为一个类来构建id似乎是一个不必要的步骤。 - zerefel
{_id: new BSON.ObjectId("58f8085dc1840e050034d98f")}: - TonyT
显示剩余2条评论

32

当前版本的MongoDB Compass(1.10.5)不再支持$oid,但它可以使用标准查询:{"_id":ObjectId("5a028baa2dc80f2e26a8ed63")}


1
最相关的答案! - Julius
2
在Windows 10上使用Compass v1.21.2,这个语法{"_id":ObjectId("5ec95f4bca1dd731c006f44e")}对我有效。 - mortenma71

4

{"_id":对象ID("5f8344e2a00ed7f6172a7184")}


3
{module_id: ObjectId('5cee65f283774d3470fc01cc')}

搜索结果: 搜索结果


2
你的回答可以通过提供更多支持信息来改进。请编辑以添加进一步的细节,例如引用或文档,以便他人可以确认你的答案是正确的。您可以在帮助中心找到有关如何编写良好答案的更多信息。 - Community
在我的情况下,我用“_id”替换了“module_id”。 - HandyPawan

0
在 MongoDB Compass 版本 1.36.3 (1.36.3) 中,以下查询对我来说可以用于在集合中搜索 ObjectId。
{ _id: ObjectId('99228b69ebefdf6599311190e') }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接