查询MongoDB Compass中的二进制字段

时间:2019-01-20 22:01:08

标签: mongodb

我正在尝试查询mongo db中的二进制字段。数据如下:

{"_id":"WE8fSixi8EuWnUiThhZdlw=="}

enter image description here

例如,我尝试了很多事情:

{ '_id': new Binary( 'WE8fSixi8EuWnUiThhZdlw==', Binary.SUBTYPE_DEFAULT) }
{ '_id': Binary( 'WE8fSixi8EuWnUiThhZdlw==', 0) }

似乎一切都没有用,用尽了Google和mongo文档,任何帮助者都将是惊人的。

1 个答案:

答案 0 :(得分:3)

我看到您正在使用MongoDB Compass来查询该字段。不幸的是,当前版本的MongoDB Compass(v1.16.x)不支持查询二进制数据。

您可以改用mongo shell来查询数据。例如:

db.collection.find({'_id':BinData(0, "WE8fSixi8EuWnUiThhZdlw==")});

请注意,字段名称_id保留用作主键;其值在集合中必须为 unique ,并且是不可变的。根据要存储到_id中的二进制文件的值,我建议将二进制文件存储在另一个字段中,并保持_id的值包含ObjectId