【发布时间】:2016-03-30 10:04:20
【问题描述】:
我在我的应用程序中使用 Java Driver for MongoDB (2.14)。
我有这些文件:
{ "_id" : ObjectId("56fb9798e2445ade35effa89"), "b" : BinData(3,"abcdefgh") }
{ "_id" : ObjectId("56fba265e2445ade35effa8c"), "b" : 1 }
我必须使用 Java 检索所有 "b" 是二进制数据的文档。
为了达到我的目标,我使用以下查询:
DBObject query = new BasicDBObject(b, new BasicDBObject("$type",5));
DBObject projKeys = new BasicDBObject();
projKeys.put("_id", 0);
projKeys.put(b, 1);
DBCursor cursor = coll.find(query,projKeys);
但是当我开始迭代 cursor 时,我得到了一个异常:
java.lang.IllegalArgumentException: 错误的数据大小子类型 3 len: 6 != 16
当我尝试使用 mongo shell 进行相同的查询时,即:
db.coll.find({b:{"$type":5}}, {_id:0,b:1})
我没有错误。
【问题讨论】: