我手动为mongodb中的某些文档添加了一个字段。这是一个日期字段:creationDate。 这是我在mongodb终端中编写的脚本:
var cursor = db.collection.find({"creationDate": {$exists: false}});
while(cursor.hasNext()){
box = cursor.next();
box.creationDate = new Date();
db.collection.save(box);
}
所有100个文件都已成功保存。
当我在数据库中输入此查询时,我得到了正确的结果:
db.collection.find({'creationDate' : {$exists: true}})
但是当我在java中执行这一行(使用mongodb java驱动程序2.12)时,它什么都不返回:
myCollection.find(new BasicDBObject("creationDate", new BasicDBObject("$exists", true)));
虽然当我使用mongodb java驱动程序将字段creationDate添加到我的某个文档时,上面的代码只返回该文档。
我存储在数据库中的实体类如下所示:
public class Entity {
@Id
private ObjectId id;
private String identifier;
private Map<String, String> metadata = new HashMap<>(1);
private Date creationDate;
//setters and getters
}
我的问题是:为什么mongodb java驱动程序不能识别我在数据库中新添加的字段?
(抱歉我的英语不好!)