MongoDB查詢集合中的文檔

MongoDB查詢集合中的文檔

參考資料:http://blog.csdn.net/qq_36040184/article/details/54355085

測試:

集合中插入數據

> db.chenji.insert({"name":"張三","年紀":"三年級","年齡":"14"})

WriteResult({ "nInserted" : 1 })

> db.chenji.insert({"name":"王三","年紀":"四年級","年齡":"16"})

WriteResult({ "nInserted" : 1 })

> db.chenji.insert({"name":"王七","年紀":"一年級","年齡":"8"})

WriteResult({ "nInserted" : 1 })

> db.chenji.insert({"name":"張巴","年紀":"一年級","年齡":"9"})

WriteResult({ "nInserted" : 1 })

> db.chenji.insert({"name":"謝娜","年紀":"七年級","年齡":"16"})

WriteResult({ "nInserted" : 1 })

> db.chenji.find()

{ "_id" : ObjectId("59990ec402730a37fe1ee79e"),"name" : "建偉", "年紀" : "二年級","年齡" : "12" }

{ "_id" :ObjectId("59987eee7cd6cda607043cd1"), "name" : "李旭","年紀" : "三年級", "年齡" : "13" }

{ "_id" :ObjectId("5998860a7cd6cda607043cd2"), "name" : "張三","年紀" : "三年級", "年齡" : "14" }

{ "_id" : ObjectId("599886227cd6cda607043cd3"),"name" : "王三", "年紀" : "四年級","年齡" : "16" }

{ "_id" :ObjectId("599886357cd6cda607043cd4"), "name" : "王七","年紀" : "一年級", "年齡" : "8" }

{ "_id" :ObjectId("599886537cd6cda607043cd5"), "name" : "張巴","年紀" : "一年級", "年齡" : "9" }

{ "_id" :ObjectId("5998866e7cd6cda607043cd6"), "name" : "謝娜","年紀" : "七年級", "年齡" : "16" }

 

 

3.1使用條件表達式(<, <=, >, >=,!=)

//大於: field > value

db.collection.find({field:{$gt:value}});

 

db.chenji.find({"年齡":{$gt:"6"}});

{ "_id" :ObjectId("599886357cd6cda607043cd4"), "name" : "王七","年紀" : "一年級", "年齡" : "8" }

{ "_id" :ObjectId("599886537cd6cda607043cd5"), "name" : "張巴","年紀" : "一年級", "年齡" : "9" }

 

//小於: field < value

db.collection.find({field:{$lt:value}});

> db.chenji.find({"年齡":{$lt:"16"}});

{ "_id" :ObjectId("59990ec402730a37fe1ee79e"), "name" : "建偉","年紀" : "二年級", "年齡" : "12" }

{ "_id" :ObjectId("59987eee7cd6cda607043cd1"), "name" : "李旭","年紀" : "三年級", "年齡" : "13" }

{ "_id" :ObjectId("5998860a7cd6cda607043cd2"), "name" : "張三","年紀" : "三年級", "年齡" : "14" }

 

 

//大於等於: field >=value

db.collection.find({field:{$gte:value}});

> db.chenji.find({"年齡":{$gte:"7"}});

{ "_id" :ObjectId("599886357cd6cda607043cd4"), "name" : "王七","年紀" : "一年級", "年齡" : "8" }

{ "_id" :ObjectId("599886537cd6cda607043cd5"), "name" : "張巴","年紀" : "一年級", "年齡" : "9" }

> db.chenji.find({"年齡":{$gte:"6"}});

{ "_id" :ObjectId("599886357cd6cda607043cd4"), "name" : "王七","年紀" : "一年級", "年齡" : "8" }

{ "_id" : ObjectId("599886537cd6cda607043cd5"),"name" : "張巴", "年紀" : "一年級","年齡" : "9" }

 

//小於等於: field <=value

db.collection.find({field:{$lte:value}});

 

> db.chenji.find({"年齡":{$lte:"13"}});

{ "_id" : ObjectId("59990ec402730a37fe1ee79e"),"name" : "建偉", "年紀" : "二年級","年齡" : "12" }

{ "_id" :ObjectId("59987eee7cd6cda607043cd1"), "name" : "李旭","年紀" : "三年級", "年齡" : "13" }

 

//不等於: field != value

db.collection.find({field:{$ne:value}});

 

db.chenji.find({"name":{$ne:"謝娜"}});

{ "_id" :ObjectId("59990ec402730a37fe1ee79e"), "name" : "建偉","年紀" : "二年級", "年齡" : "12" }

{ "_id" :ObjectId("59987eee7cd6cda607043cd1"), "name" : "李旭","年紀" : "三年級", "年齡" : "13" }

{ "_id" :ObjectId("5998860a7cd6cda607043cd2"), "name" : "張三","年紀" : "三年級", "年齡" : "14" }

{ "_id" :ObjectId("599886227cd6cda607043cd3"), "name" : "王三","年紀" : "四年級", "年齡" : "16" }

{ "_id" :ObjectId("599886357cd6cda607043cd4"), "name" : "王七","年紀" : "一年級", "年齡" : "8" }

{ "_id" :ObjectId("599886537cd6cda607043cd5"), "name" : "張巴","年紀" : "一年級", "年齡" : "9" }

 

db.chenji.find({"年紀":{$ne:"三年級"}});

{ "_id" :ObjectId("59990ec402730a37fe1ee79e"), "name" : "建偉","年紀" : "二年級", "年齡" : "12" }

{ "_id" :ObjectId("599886227cd6cda607043cd3"), "name" : "王三","年紀" : "四年級", "年齡" : "16" }

{ "_id" :ObjectId("599886357cd6cda607043cd4"), "name" : "王七","年紀" : "一年級", "年齡" : "8" }

{ "_id" :ObjectId("599886537cd6cda607043cd5"), "name" : "張巴","年紀" : "一年級", "年齡" : "9" }

{ "_id" :ObjectId("5998866e7cd6cda607043cd6"), "name" : "謝娜","年紀" : "七年級", "年齡" : "16" }

 

3.2統計(count)、排序(sort)、分頁(skiplimit)

> db.chenji.count();

7

> db.chenji.find().count();

7

 

> db.chenji.find({"年齡":{$lt:"16"}})

{ "_id" :ObjectId("59990ec402730a37fe1ee79e"), "name" : "建偉","年紀" : "二年級", "年齡" : "12" }

{ "_id" :ObjectId("59987eee7cd6cda607043cd1"), "name" : "李旭","年紀" : "三年級", "年齡" : "13" }

{ "_id" :ObjectId("5998860a7cd6cda607043cd2"), "name" : "張三","年紀" : "三年級", "年齡" : "14" }

>

> db.chenji.find({"年齡":{$lt:"16"}}).count();

3

 

> db.chenji.find({"年紀":{$ne:"三年級"}});

{ "_id" :ObjectId("59990ec402730a37fe1ee79e"), "name" : "建偉","年紀" : "二年級", "年齡" : "12" }

{ "_id" :ObjectId("599886227cd6cda607043cd3"), "name" : "王三","年紀" : "四年級", "年齡" : "16" }

{ "_id" :ObjectId("599886357cd6cda607043cd4"), "name" : "王七","年紀" : "一年級", "年齡" : "8" }

{ "_id" :ObjectId("599886537cd6cda607043cd5"), "name" : "張巴","年紀" : "一年級", "年齡" : "9" }

{ "_id" :ObjectId("5998866e7cd6cda607043cd6"), "name" : "謝娜","年紀" : "七年級", "年齡" : "16" }

> db.chenji.find({"年紀":{$ne:"三年級"}}).count();

5

 

排序:默認是按照自身的id號來排序

> db.chenji.find().sort({"年齡":1});

 

{ "_id" :ObjectId("59990ec402730a37fe1ee79e"), "name" : "建偉","年紀" : "二年級", "年齡" : "12" }

{ "_id" :ObjectId("59987eee7cd6cda607043cd1"), "name" : "李旭","年紀" : "三年級", "年齡" : "13" }

{ "_id" :ObjectId("5998860a7cd6cda607043cd2"), "name" : "張三","年紀" : "三年級", "年齡" : "14" }

{ "_id" :ObjectId("599886227cd6cda607043cd3"), "name" : "王三","年紀" : "四年級", "年齡" : "16" }

{ "_id" : ObjectId("5998866e7cd6cda607043cd6"),"name" : "謝娜", "年紀" : "七年級","年齡" : "16" }

{ "_id" :ObjectId("599886357cd6cda607043cd4"), "name" : "王七","年紀" : "一年級", "年齡" : "8" }

{ "_id" :ObjectId("599886537cd6cda607043cd5"), "name" : "張巴","年紀" : "一年級", "年齡" : "9" }

 

忽略前兩個id的記錄,查看接着的三條記錄

 

> db.chenji.find().skip(2).limit(3);

{ "_id" :ObjectId("5998860a7cd6cda607043cd2"), "name" : "張三","年紀" : "三年級", "年齡" : "14" }

{ "_id" :ObjectId("599886227cd6cda607043cd3"), "name" : "王三","年紀" : "四年級", "年齡" : "16" }

{ "_id" :ObjectId("599886357cd6cda607043cd4"), "name" : "王七","年紀" : "一年級", "年齡" : "8" }

 

> db.chenji.find().skip(2).limit(2);

{ "_id" :ObjectId("5998860a7cd6cda607043cd2"), "name" : "張三","年紀" : "三年級", "年齡" : "14" }

{ "_id" :ObjectId("599886227cd6cda607043cd3"), "name" : "王三","年紀" : "四年級", "年齡" : "16" }

 

按年齡倒序排序,並且查看第一行記錄

 

> db.chenji.find().sort({"年齡":-1}).limit(1)

{ "_id" :ObjectId("599886537cd6cda607043cd5"), "name" : "張巴","年紀" : "一年級", "年齡" : "9" }

按年齡倒序排序,並且查看第二行記錄

> db.chenji.find().sort({"年齡":-1}).limit(2)

{ "_id" : ObjectId("599886537cd6cda607043cd5"),"name" : "張巴", "年紀" : "一年級","年齡" : "9" }

{ "_id" :ObjectId("599886357cd6cda607043cd4"), "name" : "王七","年紀" : "一年級", "年齡" : "8" }

 

 

> db.chenji.find().sort({"年齡":-1}).skip(2).limit(2).count(1)

2

> db.chenji.find().sort({"年齡":-1}).skip(1).limit(3)

{ "_id" :ObjectId("599886357cd6cda607043cd4"), "name" : "王七","年紀" : "一年級", "年齡" : "8" }

{ "_id" :ObjectId("599886227cd6cda607043cd3"), "name" : "王三","年紀" : "四年級", "年齡" : "16" }

{ "_id" :ObjectId("5998866e7cd6cda607043cd6"), "name" : "謝娜","年紀" : "七年級", "年齡" : "16" }

 

3.3$or,相當於關係型數據庫中的OR,表示或者的關係

查詢name爲張三或者年齡爲16

> db.chenji.find({$or:[{name:"王三"},{"年齡":16}]}) 

{ "_id" :ObjectId("599886227cd6cda607043cd3"), "name" : "王三","年紀" : "四年級", "年齡" : "16" }

> db.chenji.find({$or:[{name:"王三"},{"年齡":12}]})

{ "_id" :ObjectId("599886227cd6cda607043cd3"), "name" : "王三","年紀" : "四年級", "年齡" : "16" }

 

3.4$nor,表示根據條件過濾掉某些數據

 

查詢name不是張三或者年齡不是13

>db.chenji.find({$nor:[{name:"李旭"},{"年齡":13}]})

3.5$exists,用於查詢集合中存在某個鍵的文檔或不存在某個鍵的文檔

查詢customer集合中存在name鍵的所有文檔

$exists:1表示真,指存在

$exists:0表示假,指不存在


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章