在使用Java的Mongo中,如何选择不符合某些字段的文档?

在使用Java的Mongo中,如何选择不符合某些字段的文档?,java,mongodb,Java,Mongodb,我有以下数据: "_id" : 1, "employee_id_list" : [ { "employee_id" : 2 "date_end" : 2014-11-13 }, { "employee_id" : 3 } ] 我想选择带有“id”的文档:1,其中员工id\u列表与字段日期\u结束不一致。例如,我只想选择: "_id" : 1, "employee_id_list" : [ {

我有以下数据:

"_id" : 1,
"employee_id_list" : [
    {
        "employee_id" : 2
        "date_end" : 2014-11-13
    },
    {
        "employee_id" : 3
    } 
]
我想选择带有
“id”的文档:1
,其中
员工id\u列表
与字段
日期\u结束
不一致。例如,我只想选择:

"_id" : 1,
"employee_id_list" : [
    {
        "employee_id" : 3
    } 
]
我使用以下Java代码:

DB database = mongoClient.getDB("employee_service");
DBCollection collectionProject = database.getCollection("project");
DBObject projectMongoObject = new BasicDBObject();
projectMongoObject.put("company_id", 1);
DBCuresor cursorProject = collectionProject.find(projectMongoObject);
但是我在
员工id\u列表中选择了包含所有记录的文档

将内部添加到您的查询中

DB database = mongoClient.getDB("employee_service");
DBCollection collectionProject = database.getCollection("project");
DBObject projectMongoObject = new BasicDBObject();
projectMongoObject.put("company_id", 1);
//add this
projectMongoObject.put("employee_id_list", 
        new BasicDBObject("$elemMatch", 
        new BasicDBObject("date_end", 
        new BasicDBObject("$exits", false))));
DBCuresor cursorProject = collectionProject.find(projectMongoObject);

使用
$exists
运算符以及如何为
日期
字段指定
$elemMath
?@user3629171:添加缺少的部分。