如何使用java使用_id in mongodb查询集合中是否存在字段?
How to query whether a field exists in the collection using _id in mongodb using java?
我有一个集合 twitter
,其中包含具有 email
作为 _id
和 token
字段作为 string
的文档。
{
"_id":"abc@gmail.com",
"token":"TWTR",
"screen_name":"xyz",
"location":"pqr"
}
{
"_id":"jkl@gmail.com",
"screen_name":"jkl",
"location":"abc"
}
如何在 java 中编写查询,其中 returns true
仅当 token
值存在于所有其他情况下 return false
token
值是否为 null 或 empty
。例如,在上面的推特集合中,"_id":"abc@gmail.com"
应该是 return true
,"_id":"jkl@gmail.com"
应该是 false
您可以在这些问题上使用 $ne
和“$exists”运算符以及 count()
方法:
private static boolean exist(DBCollection coll, String key)
{
DBObject query = new BasicDBObject("token", new BasicDBObject( "$ne", "").append("$exists", true)).append("_id", key);
return coll.count(query) == 1;
}
exist(coll, "abc@gmail.com"); // true
exist(coll, "jkl@gmail.com"); // false
要同时检查 null
和 empty
值,您还可以使用 $nin operator.For 示例
DBObject query = new BasicDBObject("token", new BasicDBObject("$nin", Arrays.asList("",null)));
$nin 选择文档,其中:
- the field value is not in the specified array or
- the field does not exist.
我有一个集合 twitter
,其中包含具有 email
作为 _id
和 token
字段作为 string
的文档。
{
"_id":"abc@gmail.com",
"token":"TWTR",
"screen_name":"xyz",
"location":"pqr"
}
{
"_id":"jkl@gmail.com",
"screen_name":"jkl",
"location":"abc"
}
如何在 java 中编写查询,其中 returns true
仅当 token
值存在于所有其他情况下 return false
token
值是否为 null 或 empty
。例如,在上面的推特集合中,"_id":"abc@gmail.com"
应该是 return true
,"_id":"jkl@gmail.com"
false
您可以在这些问题上使用 $ne
和“$exists”运算符以及 count()
方法:
private static boolean exist(DBCollection coll, String key)
{
DBObject query = new BasicDBObject("token", new BasicDBObject( "$ne", "").append("$exists", true)).append("_id", key);
return coll.count(query) == 1;
}
exist(coll, "abc@gmail.com"); // true
exist(coll, "jkl@gmail.com"); // false
要同时检查 null
和 empty
值,您还可以使用 $nin operator.For 示例
DBObject query = new BasicDBObject("token", new BasicDBObject("$nin", Arrays.asList("",null)));
$nin 选择文档,其中:
- the field value is not in the specified array or
- the field does not exist.