我有以下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 是否有任何解决方案。
答案 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");
}