MongoDB快速入門筆記(四)之MongoDB查詢文檔操作執行個體代碼_MongoDB

來源:互聯網
上載者:User

MongoDB簡介

MongoDB 是一個基於分布式檔案儲存體的資料庫。由 C++ 語言編寫。旨在為 WEB 應用提供可擴充的高效能資料儲存解決方案。

MongoDB 是一個介於關聯式資料庫和非關聯式資料庫之間的產品,是非關聯式資料庫當中功能最豐富,最像關聯式資料庫的。

下面給大家介紹MongoDB查詢文檔操作的執行個體

先把student刪除,再重新插入資料

> db.student.drop()true> db.student.insert([{ "_id" : 1, "name" : "zhangsan", "age": 27, "sex": 1 }, { "_id" : 2, "name" : "lisi", "age": 27 } ,{ "_id" : 3, "name" : "wangwu", "age": 30 }, { "_id" : 4, "name" : "zhaoliu", "age": 28 }, { "_id" : 5, "name" : "qianliu", "age": 33 }, { "_id" : 6, "name" : "sunba", "age": 32 }])BulkWriteResult({"writeErrors" : [ ],"writeConcernErrors" : [ ],"nInserted" : 6,"nUpserted" : 0,"nMatched" : 0,"nModified" : 0,"nRemoved" : 0,"upserted" : [ ]})> db.student.find(){ "_id" : 1, "name" : "zhangsan", "age" : 27 }{ "_id" : 2, "name" : "lisi", "age" : 27 }{ "_id" : 3, "name" : "wangwu", "age" : 30 }{ "_id" : 4, "name" : "zhaoliu", "age" : 28 }{ "_id" : 5, "name" : "qianliu", "age" : 33 }{ "_id" : 6, "name" : "sunba", "age" : 32 } 

1、查詢指定鍵

db.集合名稱.find({查詢條件},{指定鍵})

指定鍵:1表示顯示,0表示不顯示,_id預設顯示

> db.student.find({},{name:1}){ "_id" : 1, "name" : "zhangsan" }{ "_id" : 2, "name" : "lisi" }{ "_id" : 3, "name" : "wangwu" }{ "_id" : 4, "name" : "zhaoliu" }{ "_id" : 5, "name" : "qianliu" }{ "_id" : 6, "name" : "sunba" }> db.student.find({},{_id:0, age:0}){ "name" : "zhangsan", "sex" : 1 }{ "name" : "lisi" }{ "name" : "wangwu" }{ "name" : "zhaoliu" }{ "name" : "qianliu" }{ "name" : "sunba" }> db.student.find({},{_id:0, name:1}){ "name" : "zhangsan" }{ "name" : "lisi" }{ "name" : "wangwu" }{ "name" : "zhaoliu" }{ "name" : "qianliu" }{ "name" : "sunba" } 

2、各種查詢方式

$lt:<$lte:<=$gt:>$gte:>=$ne:!=> db.student.find({age:{$lt:30}}){ "_id" : 1, "name" : "zhangsan", "age" : 27, "sex" : 1 }{ "_id" : 2, "name" : "lisi", "age" : 27 }{ "_id" : 4, "name" : "zhaoliu", "age" : 28 }> db.student.find({age:{$ne:27}}){ "_id" : 3, "name" : "wangwu", "age" : 30 }{ "_id" : 4, "name" : "zhaoliu", "age" : 28 }{ "_id" : 5, "name" : "qianliu", "age" : 33 }{ "_id" : 6, "name" : "sunba", "age" : 32 } 

$in:包含

$nin:不包含

> db.student.find({age:{$in:[27,28]}}){ "_id" : 1, "name" : "zhangsan", "age" : 27, "sex" : 1 }{ "_id" : 2, "name" : "lisi", "age" : 27 }{ "_id" : 4, "name" : "zhaoliu", "age" : 28 }> db.student.find({age:{$nin:[27,28]}}){ "_id" : 3, "name" : "wangwu", "age" : 30 }{ "_id" : 5, "name" : "qianliu", "age" : 33 }{ "_id" : 6, "name" : "sunba", "age" : 32 } 

$or:或者

> db.student.find({$or:[{age:{$lt:29}}, {name:"sunba"}]}){ "_id" : 1, "name" : "zhangsan", "age" : 27, "sex" : 1 }{ "_id" : 2, "name" : "lisi", "age" : 27 }{ "_id" : 4, "name" : "zhaoliu", "age" : 28 }{ "_id" : 6, "name" : "sunba", "age" : 32 } 

null:空值

> db.student.find({sex: null}){ "_id" : 2, "name" : "lisi", "age" : 27 }{ "_id" : 3, "name" : "wangwu", "age" : 30 }{ "_id" : 4, "name" : "zhaoliu", "age" : 28 }{ "_id" : 5, "name" : "qianliu", "age" : 33 }{ "_id" : 6, "name" : "sunba", "age" : 32 } 

$type:鍵是某種類型的

double:1
string:2
...

> db.student.insert({_id:7, name:7, age:70})WriteResult({ "nInserted" : 1 })> db.student.find({name: {$type: 2}}){ "_id" : 1, "name" : "zhangsan", "age" : 27, "sex" : 1 }{ "_id" : 2, "name" : "lisi", "age" : 27 }{ "_id" : 3, "name" : "wangwu", "age" : 30 }{ "_id" : 4, "name" : "zhaoliu", "age" : 28 }{ "_id" : 5, "name" : "qianliu", "age" : 33 }{ "_id" : 6, "name" : "sunba", "age" : 32 }> db.student.find({name: {$type: 1}}){ "_id" : 7, "name" : 7, "age" : 70 } 

Regex

> db.student.find({name: /si\b/}){ "_id" : 2, "name" : "lisi", "age" : 27 } 

db.集合名稱.findOne({查詢條件},{指定鍵})
查詢出合格第一條資料

> db.student.findOne(){ "_id" : 1, "name" : "zhangsan", "age" : 27, "sex" : 1 } 

db.集合名稱.find({查詢條件},{指定鍵}).limit(數字)
查詢前幾條資料

> db.student.find().limit(3){ "_id" : 1, "name" : "zhangsan", "age" : 27, "sex" : 1 }{ "_id" : 2, "name" : "lisi", "age" : 27 }{ "_id" : 3, "name" : "wangwu", "age" : 30 } 

db.集合名稱.find({查詢條件},{指定鍵}).skip(數字)
跳過前幾條資料

> db.student.find().skip(2){ "_id" : 3, "name" : "wangwu", "age" : 30 }{ "_id" : 4, "name" : "zhaoliu", "age" : 28 }{ "_id" : 5, "name" : "qianliu", "age" : 33 }{ "_id" : 6, "name" : "sunba", "age" : 32 }{ "_id" : 7, "name" : 7, "age" : 70 } 

可以使用limit()和skip()實現分頁

> db.student.find().skip(0).limit(3){ "_id" : 1, "name" : "zhangsan", "age" : 27, "sex" : 1 }{ "_id" : 2, "name" : "lisi", "age" : 27 }{ "_id" : 3, "name" : "wangwu", "age" : 30 }> db.student.find().skip(3).limit(3){ "_id" : 4, "name" : "zhaoliu", "age" : 28 }{ "_id" : 5, "name" : "qianliu", "age" : 33 }{ "_id" : 6, "name" : "sunba", "age" : 32 }> db.student.find().skip(6).limit(3){ "_id" : 7, "name" : 7, "age" : 70 } 

db.集合名稱.find().sort({鍵:數字})
數字為1表示升序,數字為2表示降序

> db.student.find().sort({age:1}){ "_id" : 1, "name" : "zhangsan", "age" : 27, "sex" : 1 }{ "_id" : 2, "name" : "lisi", "age" : 27 }{ "_id" : 4, "name" : "zhaoliu", "age" : 28 }{ "_id" : 3, "name" : "wangwu", "age" : 30 }{ "_id" : 6, "name" : "sunba", "age" : 32 }{ "_id" : 5, "name" : "qianliu", "age" : 33 }{ "_id" : 7, "name" : 7, "age" : 70 }> db.student.find().sort({age:1, _id:-1}){ "_id" : 2, "name" : "lisi", "age" : 27 }{ "_id" : 1, "name" : "zhangsan", "age" : 27, "sex" : 1 }{ "_id" : 4, "name" : "zhaoliu", "age" : 28 }{ "_id" : 3, "name" : "wangwu", "age" : 30 }{ "_id" : 6, "name" : "sunba", "age" : 32 }{ "_id" : 5, "name" : "qianliu", "age" : 33 }{ "_id" : 7, "name" : 7, "age" : 70 } 

以上內容是小編給大家介紹的MongoDB快速入門筆記(四)之MongoDB查詢文檔操作執行個體代碼,希望對大家有所協助!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.