我正在尝试查询mongo db中的二进制字段。数据如下:
{"_id":"WE8fSixi8EuWnUiThhZdlw=="}
例如,我尝试了很多事情:
{ '_id': new Binary( 'WE8fSixi8EuWnUiThhZdlw==', Binary.SUBTYPE_DEFAULT) }
{ '_id': Binary( 'WE8fSixi8EuWnUiThhZdlw==', 0) }
等
似乎一切都没有用,用尽了Google和mongo文档,任何帮助者都将是惊人的。
答案 0 :(得分:3)
我看到您正在使用MongoDB Compass来查询该字段。不幸的是,当前版本的MongoDB Compass(v1.16.x)不支持查询二进制数据。
您可以改用mongo shell来查询数据。例如:
db.collection.find({'_id':BinData(0, "WE8fSixi8EuWnUiThhZdlw==")});
请注意,字段名称_id
保留用作主键;其值在集合中必须为 unique ,并且是不可变的。根据要存储到_id
中的二进制文件的值,我建议将二进制文件存储在另一个字段中,并保持_id
的值包含ObjectId。