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)、分頁(skip、limit)
> 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表示假,指不存在