如何查找MongoDb文档中是否存在密钥?

时间:2013-12-21 15:23:56

标签: java mongodb

我有以下mongodb文件

{

"user_100":{
    "name": "Scott" ,
    "uniqueDetails":{
    "mobile":"9999999999",
    "email": "scott@abc.com",
    }
},
"user_101":{
    "name": "Smith",
    "uniqueDetails":{
    "mobile":"9999999998",
    "email": "smith@abc.com"
    }
}
}

现在,当新用户注册时,我想检查一下给定的手机号码/电子邮件是否已经存在。使用 Java MongoDB API 是否有任何解决方案。

2 个答案:

答案 0 :(得分:1)

您可以在集合中搜索并搜索所需的标记:

例如:

BasicDBObject query = new BasicDBObject("email", email_to_seach);

DBCursor cursor = coll.find(query);

try {
   while(cursor.hasNext()) {
       System.out.println(cursor.next());
   }
} finally {
   cursor.close();
}

此外,您只能查找包含所需电子邮件或手机的第一个文档:

BasicDBObject query = new BasicDBObject("email", email_to_seach);
DBObject myDoc = coll.findOne(query);

答案 1 :(得分:0)

您可以使用com.mongodb.QueryBuilder类来构建查询:

DBObject query = QueryBuilder.start("mobile").is(mobileNumberToSearch)
    .or(QueryBuilder.start("email").is(emailToSearch).get()).get();

DBCursor dbCursor = collection.find(query);
if(dbCursor.hasNext()){
    System.out.println("mobile number or email already exists");
}