我正在尝试查询 mongo db 中的二进制字段。数据如下所示:
{"_id":"WE8fSixi8EuWnUiThhZdlw=="}
Run Code Online (Sandbox Code Playgroud)
我尝试了很多东西,例如:
{ '_id': new Binary( 'WE8fSixi8EuWnUiThhZdlw==', Binary.SUBTYPE_DEFAULT) }
{ '_id': Binary( 'WE8fSixi8EuWnUiThhZdlw==', 0) }
Run Code Online (Sandbox Code Playgroud)
等等
似乎没有任何工作,已经用尽了 google 和 mongo 文档,任何帮助都会很棒。
更新:
现在您应该能够从 MongoDB Compass v1.20+ ( COMPASS-1083 )查询 UUID 和 BinData 。例如:{"field": BinData(0, "valid_base64")}。
以前的:
我看到您正在使用MongoDB Compass来查询该字段。不幸的是,当前版本的 MongoDB Compass (v1.16.x) 不支持查询二进制数据。
您可以使用mongo shell来查询数据。例如:
db.collection.find({'_id':BinData(0, "WE8fSixi8EuWnUiThhZdlw==")});
Run Code Online (Sandbox Code Playgroud)
请注意,字段名称_id保留用作主键;它的值在集合中必须是唯一的,并且是不可变的。根据您存储到的二进制文件的值_id,我建议将二进制文件存储在另一个字段中,并将 的值保留_id为包含ObjectId。