日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

[ mongoDB ] - mongoDB的基本操作

發布時間:2023/12/19 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [ mongoDB ] - mongoDB的基本操作 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

mongoDB的基本操作

強烈推薦參考官方用戶手冊:

http://www.mongodb.org/display/DOCS

?

1)插入(insert)

插入的value是json對象,以下示例循環添加了10個用戶信息,字段可以是字符串、數值、對象、數組等。

通過VUE查看:

?

2)查詢(find)

2.1——查詢全部內容:

db.user.find({})?

我們可以稱{}中的內容為選擇器,這里選擇器為空,可以省略,指獲取collection中所有內容。

?

2.2——字段查詢

db.user.find({name:'fox1'})

?

2.3——排序(sorting)

db.user.find({}).sort({age:1})

1代表升序,-1代表降序

?

2.4——skip and limit(可以用于分頁)

db.user.find({ }).skip(5).limit(5).sort({ "age" : 1 });

例如,對user表進行分頁,寫一個js函數提供分頁功能。

function pagination(pageNumber , nPerPage){ db.user.find().skip((pageNumber-1)*nPerPage).limit(nPerPage).forEach( function(user){print(user.name+"<p>")});}

?

2.5——游標

var cur=db.user.find();

cur.forEach(function(x){ print(tojson(x))});

具體參考:

http://www.mongodb.org/display/DOCS/Querying

?

?

高級查詢

參考:http://www.mongodb.org/display/DOCS/Advanced+Queries

2.6——條件運算符

#<,<=,>,>=

#查找18<age<28的用戶

db.user.find({age:{$gt:18,$lt:28}})

?

#$all,全包含

#查找郵箱在'fox@126.com','hg0@fox.com'范圍內的用戶

db.user.find({email:{$all:['fox@126.com','hg0@fox.com']}})

?

#$exists,表示字段是否存在

#查找存在字段a的用戶

db.user.find({a:{$exists:true}})

?

#$mod,取模

#找到本命年的用戶

db.user.find({age:{$mod:[12,0]}})

等價于:

db.user.find("this.age % 12 == 0")

?

#$ne,不等于

#獲取age不等于10的用戶

db.user.find({age:{$ne:10}})

?

#$in,$nin

db.user.find({age:{$in:[10,12,14]}})

db.user.find({age:{$nin:[10,12,14]}})

?

#$nor,$or,$and 關系運算符

#查找age<15或者age>25的用戶,并按照age排序

db.user.find({$or:[{age:{$lt:15}},{age:{$gt:25}}]}).sort({age:1})

?

#$size

#查找有兩個郵箱地址的用戶

db.user.find({email:{$size:2}})

?

#$type

#根據字段類型進行查找

字段類型對應關系

Type NameType Number
Double1
String2
Object3
Array4
Binary data5
Object id7
Boolean8
Date9
Null10
Regular expression11
JavaScript code13
Symbol14
JavaScript code with scope15
32-bit integer16
Timestamp17
64-bit integer18
Min key255
Max key127

?

2.7——正則查詢

?

?

2.8——數據中數據的查詢

#可以直接對數組中的某一個元素進行檢索

#查詢郵箱包含hg6@fox.com的用戶

db.user.find({email:'hg6@fox.com'})

?

#elemMatch

#數組元素中應用數學表達式(match expression)

?

2.9——embedded Object(內置對象屬性查詢)

#查詢在長沙的用戶

db.user.find({'address.city':'changsha'})

注意:此時的address.city需要引號(整體化)

?

2.10——非

#$not

#查找大于等于15歲的用戶

db.user.find({age:{$not:{$lt:15}}})

注意:

db.user.find({$not:{age:{$gt:15}}})不正確!!!

?

2.11——js表達式

#查找age大于25的用戶

a) db.user.find({age:{$gt:25}})

b) db.user.find({$where:"this.age > 25"})

c) db.user.find("this.age > 25")

d) f = function(){return this.age>25;}

? ? db.user.find(f)

寫復雜條件,這個$where比較方便強大了!

?

3)更新(update)

3.1——更新語法:db.collection.update(?criteria,?objNew,?upsert,?multi?)

criteria:數據范圍,需要修改數據的查詢條件

objNew:更新數據

upsert:如果沒有查詢到則新增,但只新增一條數據

multi?:默認只更新第一條數據

?

3.2——#$inc

#必須是數值型字段

#給fox1加一歲

db.user.update({name:'fox1'},{$inc:{age:1}})

?

3.3——#$set

#給fox1變成10歲

db.user.update({name:'fox1'},{$set:{age:10}})

?

3.4——#$unset

#刪除某個字段

?

3.5——#針對數組的操作:$push,$pushAll,$addToset,$each,$pop,$pull,$pullAll

#給fox1新增一個郵箱($push)

db.user.update({name:'fox1'},{$push:{email:'fire009@126.com'}})

#$pop:{field:1}刪除最后一個元素,$pop:{field:-1}刪除第一個元素。

#$pull刪除數組中指定條件的數據。

#使用$進行位置上的操作(指定數組上某個元素)

?

?

?

?

?

總結

以上是生活随笔為你收集整理的[ mongoDB ] - mongoDB的基本操作的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。