在Mongo Compass上通过ObjectId进行搜索

33 浏览
0 Comments

在Mongo Compass上通过ObjectId进行搜索

我该如何使用Mongo Compass并通过ObjectID进行搜索?我一直在寻找相关文档,但一直没有找到。我尝试过以下方式:

{ "_id" : "58f8085dc1840e050034d98f" }
{ "$oid" : "58f8085dc1840e050034d98f" }
{ "id" : "58f8085dc1840e050034d98f" }

这些方式似乎都不起作用,让我感到非常沮丧。另外,顺便问一下,在Compass中显示文档时是否可以设置跳过/限制的数量?

0
0 Comments

问题原因:当前版本的MongoDB Compass(1.10.5)似乎不再支持$oid,但它可以使用标准查询进行工作:{"_id": ObjectId("5a028baa2dc80f2e26a8ed63")}

解决方法:在Windows 10上使用Compass v1.21.2时,这种语法{"_id": ObjectId("5ec95f4bca1dd731c006f44e")}对我有效。

0
0 Comments

在使用Mongo Compass进行搜索时,出现了无法使用ObjectId进行搜索的问题。这个问题的原因是Mongo Compass无法直接识别ObjectId作为查询条件。不过,我们可以通过一种解决方法来解决这个问题。

解决方法如下所示:

1. 首先,我们需要将ObjectId转换为字符串形式,以便能够在Mongo Compass中进行搜索。在上述示例中,ObjectId("5f8344e2a00ed7f6172a7184")可以转换为字符串"5f8344e2a00ed7f6172a7184"。

2. 在Mongo Compass的搜索框中,我们可以使用MongoDB的查询语法来进行搜索。对于ObjectId的搜索,我们可以使用{"_id": ObjectId("5f8344e2a00ed7f6172a7184")}的格式进行查询。

3. 将上述查询语法复制到Mongo Compass的搜索框中,并执行搜索操作。此时,Mongo Compass将能够正确识别ObjectId作为查询条件,并返回相关的结果。

总结起来,当在Mongo Compass中使用ObjectId进行搜索时,可能会遇到无法直接识别ObjectId的问题。为了解决这个问题,我们可以将ObjectId转换为字符串形式,并在查询语法中使用{"_id": ObjectId("5f8344e2a00ed7f6172a7184")}的格式进行搜索。这样,Mongo Compass就能够正确识别ObjectId并返回相关结果。

0
0 Comments

在Mongo Compass中,有一个问题是在搜索ObjectId时无法成功查询的。这个问题的出现是因为Mongo Compass的新版本支持通过类似于mongo shell的查询方式进行ObjectId的查询,而不再支持使用$oid语法。如果使用的是旧版本的Mongo Compass(1.10.x之前的版本),则需要在查询框中输入以下内容:

{"_id":{"$oid":"58f8085dc1840e050034d98f"}}

另外值得注意的是,在UI界面中,可以点击一个_id,并自动将基于所点击内容的查询填充到查询框中。还可以使用Shift+点击多个字段来创建复合(与逻辑)查询条件,或者点击并拖动以选择一个范围。

在版本为1.8.x及以上的Mongo Compass中,对于浏览“Documents”选项卡下的数据,支持Skip和Limit功能。在查询栏右侧点击“Options”按钮可以进行相关设置。有关示例和详细信息,请参阅Query Bar文档。

“Schema”选项卡仅支持Limit功能,因为在该上下文中进行Skip操作没有意义。

要点击_id,需要在Schema选项卡上操作。如果_id的类型是ObjectId,则其分布的可视化将显示为一个日期范围,并且可以通过拖动来选择一个或多个行以填充基于_id的查询。如果_id是其他类型,则其中的一部分将单独显示,可以点击、拖动或Shift+点击。

在代码中使用$oid语法已被弃用的原因是官方认为这是一个不必要的步骤,需要额外导入ObjectId类来构建id。

总结一下,要在Mongo Compass中成功搜索ObjectId,对于新版本的Compass,直接使用{_id: ObjectId('58f8085dc1840e050034d98f')}的查询语法即可;对于旧版本的Compass,需要使用{"_id":{"$oid":"58f8085dc1840e050034d98f"}}的查询语法。此外,还可以通过点击_id来快速填充查询框。

0