mongo-java-driverの複雑なクエリー
4307 ワード
mongoのコマンド、クエリー文は参照できます mongodbチュートリアルでは、javaを使用してmongodbを実装する条件操作を見てみましょう.(>)が-$gt より大きい(<)より小さい-$lt (>=)が-$gte 以上(<=)が−$lte 以下
実行結果
{"_id":{"$oid":"570 f 8 bdf 7 cf 08 b 02 f 5 e 52 ea 1"},"name":"李四","age":29.0,"job":"php開発","phone":"18984834098","addr":"広東深セン南山"}
{"_id":{"$oid":"570 f 8 bdf 7 cf 08 b 02 f 5 e 52 ea 4"},"name":"銭二","age":26.0,"job":"販売","phone":"18989834968","addr":"広東珠海"}
{"_id":{"$oid":"570 f 8 bdf 7 cf 08 b 02 f 5 e 52 ea 6"},"name":"呉奇","age":17.0,"job":"学生","phone":"18735834098","addr":"広東韶関"}
{"_id":{"$oid":"570 f 8 be 07 cf 08 b 02 f 5 e 52 ea 8"},"name":"馮峰","age":23.0,"job":"java開発","phone":"13689834098","addr":"広東広州越秀"}
正規クエリーを使用して、sqlのlikeに似ています.
結果
{"_id":{"$oid":"570 f 8 bdf 7 cf 08 b 02 f 5 e 52 ea 0"},"name":"張三","age":34.0,"job":"java開発","phone":"18989834028","addr":"広東深セン福田"}
{"_id":{"$oid":"570 f 8 bdf 7 cf 08 b 02 f 5 e 52 ea 1"},"name":"李四","age":29.0,"job":"php開発","phone":"18984834098","addr":"広東深セン南山"}
{"_id":{"$oid":"570 f 8 bdf 7 cf 08 b 02 f 5 e 52 ea 2"},"name":"王五","age":38.0,"job":"部門マネージャー","phone":"18981834098","addr":"広東深セン羅湖"}
最後にOrクエリーを見て
結果
{"_id":{"$oid":"570 f 8 bdf 7 cf 08 b 02 f 5 e 52 ea 0"},"name":"張三","age":34.0,"job":"java開発","phone":"18989834028","addr":"広東深セン福田"}
{"_id":{"$oid":"570 f 8 bdf 7 cf 08 b 02 f 5 e 52 ea 1"},"name":"李四","age":29.0,"job":"php開発","phone":"18984834098","addr":"広東深セン南山"}
{"_id":{"$oid":"570 f 8 be 07 cf 08 b 02 f 5 e 52 ea 8"},"name":"馮峰","age":23.0,"job":"java開発","phone":"13689834098","addr":"広東広州越秀"}
実はとても简単なことを见ることができて、ただ条件を书くのがくどいかどうか
public static void main(String[] args) throws UnknownHostException {
MongoClient client = new MongoClient();
DB test = client.getDB("test");
DBCollection user = test.getCollection("user");
// 30 user
BasicDBObject query = new BasicDBObject();
query.append("age", new BasicDBObject("$lt",30));
DBCursor cursor = user.find(query);
while(cursor.hasNext()){
DBObject ob = cursor.next();
System.out.println(ob.toString());
}
}
実行結果
{"_id":{"$oid":"570 f 8 bdf 7 cf 08 b 02 f 5 e 52 ea 1"},"name":"李四","age":29.0,"job":"php開発","phone":"18984834098","addr":"広東深セン南山"}
{"_id":{"$oid":"570 f 8 bdf 7 cf 08 b 02 f 5 e 52 ea 4"},"name":"銭二","age":26.0,"job":"販売","phone":"18989834968","addr":"広東珠海"}
{"_id":{"$oid":"570 f 8 bdf 7 cf 08 b 02 f 5 e 52 ea 6"},"name":"呉奇","age":17.0,"job":"学生","phone":"18735834098","addr":"広東韶関"}
{"_id":{"$oid":"570 f 8 be 07 cf 08 b 02 f 5 e 52 ea 8"},"name":"馮峰","age":23.0,"job":"java開発","phone":"13689834098","addr":"広東広州越秀"}
正規クエリーを使用して、sqlのlikeに似ています.
public static void main(String[] args) throws UnknownHostException {
MongoClient client = new MongoClient();
DB test = client.getDB("test");
DBCollection user = test.getCollection("user");
// addr
BasicDBObject query = new BasicDBObject();
query.append("addr", Pattern.compile(".* .*"));
DBCursor cursor = user.find(query);
while (cursor.hasNext()) {
DBObject ob = cursor.next();
System.out.println(ob.toString());
}
}
結果
{"_id":{"$oid":"570 f 8 bdf 7 cf 08 b 02 f 5 e 52 ea 0"},"name":"張三","age":34.0,"job":"java開発","phone":"18989834028","addr":"広東深セン福田"}
{"_id":{"$oid":"570 f 8 bdf 7 cf 08 b 02 f 5 e 52 ea 1"},"name":"李四","age":29.0,"job":"php開発","phone":"18984834098","addr":"広東深セン南山"}
{"_id":{"$oid":"570 f 8 bdf 7 cf 08 b 02 f 5 e 52 ea 2"},"name":"王五","age":38.0,"job":"部門マネージャー","phone":"18981834098","addr":"広東深セン羅湖"}
最後にOrクエリーを見て
public static void main(String[] args) throws UnknownHostException {
MongoClient client = new MongoClient();
DB test = client.getDB("test");
DBCollection user = test.getCollection("user");
// addr
BasicDBObject query = new BasicDBObject();
BasicDBList list = new BasicDBList();
list.add(new BasicDBObject("name"," "));
list.add(new BasicDBObject("job","java "));
query.append("$or", list);
DBCursor cursor = user.find(query);
while (cursor.hasNext()) {
DBObject ob = cursor.next();
System.out.println(ob.toString());
}
}
結果
{"_id":{"$oid":"570 f 8 bdf 7 cf 08 b 02 f 5 e 52 ea 0"},"name":"張三","age":34.0,"job":"java開発","phone":"18989834028","addr":"広東深セン福田"}
{"_id":{"$oid":"570 f 8 bdf 7 cf 08 b 02 f 5 e 52 ea 1"},"name":"李四","age":29.0,"job":"php開発","phone":"18984834098","addr":"広東深セン南山"}
{"_id":{"$oid":"570 f 8 be 07 cf 08 b 02 f 5 e 52 ea 8"},"name":"馮峰","age":23.0,"job":"java開発","phone":"13689834098","addr":"広東広州越秀"}
実はとても简単なことを见ることができて、ただ条件を书くのがくどいかどうか