mongo-java-driver 的複雜查詢

mongo的命令,查詢語句能夠參看  mongodb教程 ,如今咱們來看下使用java 實現mongodb的條件操做。
php

  • (>) 大於 - $gthtml

  • (<) 小於 - $ltjava

  • (>=) 大於等於 - $gtesql

  • (<= ) 小於等於 - $ltemongodb

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());
		}
	}

   運行結果
app

{ "_id" : { "$oid" : "570f8bdf7cf08b02f5e52ea1"} , "name" : "李四" , "age" : 29.0 , "job" : "php 開發" , "phone" : "18984834098" , "addr" : "廣東深圳南山"}code

{ "_id" : { "$oid" : "570f8bdf7cf08b02f5e52ea4"} , "name" : "錢二" , "age" : 26.0 , "job" : "銷售" , "phone" : "18989834968" , "addr" : "廣東珠海"}htm

{ "_id" : { "$oid" : "570f8bdf7cf08b02f5e52ea6"} , "name" : "吳奇" , "age" : 17.0 , "job" : "學生" , "phone" : "18735834098" , "addr" : "廣東韶關"}教程

{ "_id" : { "$oid" : "570f8be07cf08b02f5e52ea8"} , "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" : "570f8bdf7cf08b02f5e52ea0"} , "name" : "張三" , "age" : 34.0 , "job" : "java 開發" , "phone" : "18989834028" , "addr" : "廣東深圳福田"}

{ "_id" : { "$oid" : "570f8bdf7cf08b02f5e52ea1"} , "name" : "李四" , "age" : 29.0 , "job" : "php 開發" , "phone" : "18984834098" , "addr" : "廣東深圳南山"}

{ "_id" : { "$oid" : "570f8bdf7cf08b02f5e52ea2"} , "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" : "570f8bdf7cf08b02f5e52ea0"} , "name" : "張三" , "age" : 34.0 , "job" : "java 開發" , "phone" : "18989834028" , "addr" : "廣東深圳福田"}

{ "_id" : { "$oid" : "570f8bdf7cf08b02f5e52ea1"} , "name" : "李四" , "age" : 29.0 , "job" : "php 開發" , "phone" : "18984834098" , "addr" : "廣東深圳南山"}

{ "_id" : { "$oid" : "570f8be07cf08b02f5e52ea8"} , "name" : "馮峯" , "age" : 23.0 , "job" : "java 開發" , "phone" : "13689834098" , "addr" : "廣東廣州越秀"}


能夠看到其實仍是很簡單的,只是寫條件的是否太囉嗦了

相關文章
相關標籤/搜索