MongoDB的Find詳解(一)

來源:互聯網
上載者:User

標籤:style   blog   http   color   os   使用   java   ar   for   

 

1.指定返回的鍵

db.[documentName].find ({條件},{鍵指定})

資料準備persons.json

var persons = [{
name:"jim",
age:25,
email:"[email protected]",
c:89,m:96,e:87,
country:"USA",
books:["JS","C++","EXTJS","MONGODB"]
},
{
name:"tom",
age:25,
email:"[email protected]",
c:75,m:66,e:97,
country:"USA",
books:["PHP","JAVA","EXTJS","C++"]
},
{
name:"lili",
age:26,
email:"[email protected]",
c:75,m:63,e:97,
country:"USA",
books:["JS","JAVA","C#","MONGODB"]
},
{
name:"zhangsan",
age:27,
email:"[email protected]",
c:89,m:86,e:67,
country:"China",
books:["JS","JAVA","EXTJS","MONGODB"]
},
{
name:"lisi",
age:26,
email:"[email protected]",
c:53,m:96,e:83,
country:"China",
books:["JS","C#","PHP","MONGODB"]
},
{
name:"wangwu",
age:27,
email:"[email protected]",
c:45,m:65,e:99,
country:"China",
books:["JS","JAVA","C++","MONGODB"]
},
{
name:"zhaoliu",
age:27,
email:"[email protected]",
c:99,m:96,e:97,
country:"China",
books:["JS","JAVA","EXTJS","PHP"]
},
{
name:"piaoyingjun",
age:26,
email:"[email protected]",
c:39,m:54,e:53,
country:"Korea",
books:["JS","C#","EXTJS","MONGODB"]
},
{
name:"lizhenxian",
age:27,
email:"[email protected]",
c:35,m:56,e:47,
country:"Korea",
books:["JS","JAVA","EXTJS","MONGODB"]
},
{
name:"lixiaoli",
age:21,
email:"[email protected]",
c:36,m:86,e:32,
country:"Korea",
books:["JS","JAVA","PHP","MONGODB"]
},
{
name:"zhangsuying",
age:22,
email:"[email protected]",
c:45,m:63,e:77,
country:"Korea",
books:["JS","JAVA","C#","MONGODB"]
}]
for(var i = 0;i<persons.length;i++){
db.persons.insert(persons[i])
}

1.1 查詢出所有資料的指定鍵(name ,age ,country)

db.persons.find({},{name:1,age:1,country:1,_id:0})

2.查詢條件

 

2.查詢條件

2.1查詢出年齡在25到27歲之間的學生

db.persons.find({age: {$gte:25,$lte:27},{_id:0,age:1})

2.2查詢出所有不是韓國籍的學生的數學成績

db.persons.find({country:{$ne:”Korea”}},{_id:0,m:1})

3.包含或不包含

$in或$nin

2.3查詢國籍是中國或美國的學生資訊

db.persons.find({country:{$in:[“USA”,“China”]}})

2.4查詢國籍不是中國或美國的學生資訊

db.persons.find({country:{$nin:[“USA”,“China”]}})

4.OR查詢

$or

2.4查詢語文成績大於85或者英語大於90的學生資訊

db.persons.find({$or:[{c:{$gte:85}},{e:{$gte:90}}]},{_id:0,c:1,e:1})

5.Null

把中國國籍的學生上增加新的鍵sex

db.person.update({country:”China”},{$set:{sex:”m”}},false,true)

2.5查詢出sex 等於 null的學生

db.persons.find({sex:{$in:[null]}},{country:1})

6.正則查詢

2.6查詢出名字中存在”li”的學生的資訊

db.persons.find({name:/li/i},{_id:0,name:1})

7.$not的使用

$not可以用到任何地方進行取反操作

2.7查詢出名字中不存在”li”的學生的資訊

db.persons.find({name:{$not:/li/i}},{_id:0,name:1})

$not和$nin的區別是$not可以用在任何地方兒$nin是用到集合上的

8.數組查詢$all和index應用

2.8查詢喜歡看MONGOD和JS的學生

db.persons.find({books:{$all:[“MONGOBD”,”JS”]}},{books:1,_id:0})

2.9查詢第二本書是JAVA的學習資訊

db.persons.find({“books.1”:”JAVA”})

9.查詢指定長度數組$size它不能與比較查詢符一起使用(這是弊端)

2.8查詢出喜歡的書籍數量是4本的學生

db.persons.find({books:{$size:4}},{_id:0,books:1})

2.9查詢出喜歡的書籍數量大於3本的學生

1.增加欄位size

db.persons.update({},{$set:{size:4}},false,true)

2.改變書籍的更新方式,每次增加書籍的時候size增加1

db.persons.update({查詢器},{$push:{books:”ORACLE”},$inc:{size:1}})

3.利用$gt查詢

db.persons.find({size:{$gt:3}})

2.10利用shell查詢出Jim喜歡看的書的數量

var persons = db.persons.find({name:"jim"})

while(persons.hasNext()){

obj = persons.next();

print(obj.books.length)

}

1.mongodb 是NOSQL資料庫但是他在文檔查詢上還是很強大的

2.查詢符基本是用到花括弧裡面的更新符基本是在外面

3.shell是個徹徹底底的JS引擎,但是一些特殊的操作要靠他的

各個驅動包來完成(JAVA,NODE.JS)

 

//查詢出年齡在25到27歲之間的學生db.persons.find({age: {$gte:25,$lte:27}},{ "_id" : ObjectId("53ffe4a7504a4886bc371029"),age:1})//查詢出所有不是韓國籍的學生的數學成績db.persons.find({country: {$ne:"Korea"}},{ "_id" : ObjectId("53ffe4a7504a4886bc371029"),age:1})//查詢國籍是中國或美國的學生資訊db.persons.find({country:{$in:["USA","China"]}})//查詢國籍不是中國或美國的學生資訊db.persons.find({country:{$nin:["USA","China"]}})//查詢語文成績大於85或者英語大於90的學生資訊db.persons.find({$or:[{c:{$gte:85}},{e:{$gte:90}}]},{_id:0,c:1,e:1})//把中國國籍的學生上增加新的鍵sexdb.persons.update({country:"China"},{$set:{sex:"ms"}},false,true)db.persons.update({country:"USA"},{$set:{set:"ms"}},true,true)db.persons.update({country:"China"},{$set:{sex:"m"}},false,true)db.persons.update({ age: 27 },{ $set: { status: "A" } },{ multi: true })//查詢出sex 等於 null的學生db.persons.find({sex:{$in:[null]}},{country:1})//查詢出名字中存在”li”的學生的資訊,正則查詢db.persons.find({name:/li/i},{_id:0,name:1})//查詢出名字中不存在”li”的學生的資訊db.persons.find({name:{$not:/li/i}},{_id:0,name:1})//查詢喜歡看MONGOD和JS的學生db.persons.find({books:{$all:["MONGOBD","JS"]}},{books:1,"_id" : ObjectId("53ffe4a7504a4886bc371029")})//查詢喜歡看MONGOD和JS的學生db.persons.find({"books.1":"JAVA"})//查詢出喜歡的書籍數量是4本的學生db.persons.find({books:{$size:4}},{_id:0,books:1})//增加欄位sizedb.persons.update({},{$set:{size:4}},false,true)db.persons.update({name:"tom"},{$push:{books:"ORACLE"},$inc:{size:1}})//利用$gt查詢db.persons.find({size:{$gt:4}})//利用shell查詢出Jim喜歡看的書的數量var persons = db.persons.find({name:"jim"})while(persons.hasNext()){obj = persons.next();print(obj.books.length)}

聲明:本部落格高度重視智慧財產權保護,發現本部落格發布的資訊包含有侵犯其著作權的連結內容時,請聯絡我,我將第一時間做相應處理,聯絡郵箱[email protected]。


Mark Fan (小念頭)    來源:http://cube.cnblogs.com
說明:未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文串連,否則保留追究法律責任的權利。如有疑問,可以通過 [email protected] 聯絡作者,本文章採用 知識共用署名-非商業性使用-相同方式共用 2.5 中國大陸許可協議進行許可

MongoDB的Find詳解(一)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.