成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁 > 知識庫 > MongoDB Shell 命令實(shí)例總結(jié)【進(jìn)階篇】

MongoDB Shell 命令實(shí)例總結(jié)【進(jìn)階篇】

熱門標(biāo)簽:電銷機(jī)器人是什么軟件 怎么投訴地圖標(biāo)注 呼和浩特電銷外呼系統(tǒng)加盟 杭州人工電銷機(jī)器人價(jià)格 老虎洗衣店地圖標(biāo)注 濟(jì)南電銷機(jī)器人加盟公司 云南外呼系統(tǒng) 廣州長安公司怎樣申請400電話 蘋果汽車租賃店地圖標(biāo)注

本文實(shí)例講述了MongoDB Shell 命令。分享給大家供大家參考,具體如下:

原始文件請到我的github上去下載:https://github.com/yangqingxian/mongodb

這里先講幾件事:

1、這是第三次修改這篇文章了,也是第一次正真意義上的使用 github 來控制版本,想想還是有點(diǎn)小激動(dòng)的:)
2、其中的內(nèi)容結(jié)構(gòu)與 mongodb基礎(chǔ)命令是一致的,只不過添加了很多內(nèi)容進(jìn)去,適用于想進(jìn)一步學(xué)習(xí)mongodb數(shù)據(jù)庫的人
3、我其實(shí)也是菜鳥,所以我會用很白目的語言來解釋其中的內(nèi)容,如果你也跟我一樣,那就兩只鳥一起飛吧
4、接下來的內(nèi)容均是我對《MongoDB大數(shù)據(jù)權(quán)威指南(第2版)》的摘記
5、其中的命令例子并沒有事先創(chuàng)建好數(shù)據(jù)庫、集合,都是要用到的時(shí)候臨時(shí)寫的,注意理解

mongodb數(shù)據(jù)庫結(jié)構(gòu)與傳統(tǒng)關(guān)系型數(shù)據(jù)庫的比較,便于理解接下來的內(nèi)容

數(shù)據(jù)庫->集合->文檔
數(shù)據(jù)庫->表  ->列

--------------------數(shù)據(jù)庫內(nèi)容------------------

查看所有數(shù)據(jù)庫

show dbs

刪除數(shù)據(jù)庫

db.dropDatebase()

--------------------集合內(nèi)容--------------------

創(chuàng)建集合

db.createCollection()

查看所有集合\表

show collections
show tables

選定某一集合

use db_name

查看集合的信息

db.stats()

刪除一個(gè)集合,但是需要先指定一個(gè)數(shù)據(jù)庫,即先執(zhí)行 use db_name

db.dropDatabase()

修改集合的名稱

db.collection_name.renameCollection('new_name')

----------------------文檔內(nèi)容---------------------

插入數(shù)據(jù)

db.collection_name.insert(document)
db.collection_name.save(document)

查詢數(shù)據(jù)多條數(shù)據(jù)

db.collection_name.find()

1、可以指定返回的內(nèi)容

參數(shù)解釋

db.collection_name.find(
{query_term:value},
return_key_name:1}
)

a find()函數(shù)的第一個(gè)參數(shù)是查詢條件,即匹配該內(nèi)容的文檔都會被篩選出來,如果沒有查詢條件,則輸入{},不可以為空
b find()函數(shù)的第二個(gè)參數(shù)是指定返回的內(nèi)容,例如一個(gè)student的集合中的一個(gè)xiaoming文檔中包含多條內(nèi)容,姓名、學(xué)生號、家庭住址等,現(xiàn)在我只想看姓名,不想查詢的時(shí)候返回xiaoming文檔的全部內(nèi)容,就可以使用這種'鍵名:1'的形式,后面的1表示篩選出該內(nèi)容并正序輸出,0表示篩選出除了該內(nèi)容的其余部分,-1表示逆序跟1一樣的結(jié)果
c 可以返回多條記錄,這里只是舉個(gè)例子,還是拿ixaoming的例子

{
'name':1,
'student_id':1
}

這樣就返回了兩個(gè)信息,一個(gè)name,一個(gè)student_id

2、查詢嵌套信息

結(jié)合二維數(shù)組理解下面的這個(gè)信息

{
'name':'yang',
'sex':'man',
'skill':[
{'php':1},
{'mongodb':4},
{'redis':5}
],
'favorite_food':'meat'
}

其中如果使用skill來作為find()的查詢條件的話,千萬別寫成這樣

---錯(cuò)誤例子---

db.self.find({'skill':[{'php':1}]})

這樣是查不到的,因?yàn)檫@樣mongodb會將{'skill':[{'php':1}]}解析成skill數(shù)組下只包含'php':1這一條記錄的內(nèi)容,上面的例子明顯不符合這一要求,所以查詢不到

---正確的例子---

db.self.find({'skill.php':1})

這里使用了 . 告訴mongodb數(shù)據(jù)庫去匹配skill數(shù)組下php為1的內(nèi)容,重點(diǎn)在于skill下是否有'php':1這一條記錄

---正確例子2---

如果一定要使用上面的錯(cuò)誤例子的方式查詢數(shù)據(jù),可以使用$elemMatch參數(shù),注意該參數(shù)使用的位置

db.self.find({
'skill':{$elemMatch:
{'php':1}
}
})

這里的$elemMatch是作為條件操作符來使用的

查詢單條數(shù)據(jù)

db.collection_name.findOne()

 

skip 跳過查詢的最開始的數(shù)量,limit,限制返回?cái)?shù)量,sort,當(dāng) x:1 表示正序,x:-1 表示逆序

db.collection_name.find().skip(Number).limit(Number).sort({x:1})

計(jì)算符合查詢條件的文檔的數(shù)量

db.collection_name.find().count()

count()函數(shù)默認(rèn)情況下會忽略skip()或limit()函數(shù),例如假設(shè)student集合中有4個(gè)文檔,下面的三條語句將顯示不同的結(jié)果

db.student.find().limit(1).count() 結(jié)果為4,count忽略了limit(1)的條件

db.student.find().limit(1).count(true) 結(jié)果為1,為count()傳入?yún)?shù)true

獲取結(jié)果的唯一值

db.collection_name.distinct('key_name')

也是查詢的函數(shù),只不過他比起find()會將查詢結(jié)果顯示唯一值,而不是根據(jù)原有集合中,文檔的數(shù)量來顯示結(jié)果,結(jié)合關(guān)系型數(shù)據(jù)庫中的distinct來理解,舉個(gè)例子,有一個(gè)圖書集合--books,該集合下有書名,作者,出版日期等信息,注意,一個(gè)作者可能寫了很多本書,現(xiàn)在我想查看在該集合中有多少作者,如果我直接使用上面的find()函數(shù)來搜索的話

db.books.find(
{},
{'writer':1}
)

這樣會將全部的作者列出來,但是很多都是重復(fù)的,因?yàn)閒ind()是根據(jù)文檔數(shù)量來返回結(jié)果的,而distinct()會將結(jié)果篩選,
其中重復(fù)的部分

db.books.distinct('writer')

將查詢結(jié)果分組

db.collection_name.group()

  • 參數(shù)1 key 按照此key進(jìn)行分組
  • 參數(shù)2 initial 設(shè)置變量,該變量會在最終輸出,注意,這個(gè)變量是對每個(gè)分組都會定義一個(gè)的,一個(gè)新的分組開始就重新創(chuàng)建
  • 參數(shù)3 reduce 一個(gè)函數(shù),在文檔分組期間執(zhí)行,即對一個(gè)文檔進(jìn)行一次分組就會執(zhí)行一次,傳入兩個(gè)參數(shù),一個(gè)是代表initial的參數(shù),一個(gè)是目前進(jìn)行分組的文檔,為了便于理解,分別取名叫out和doc
  • 參數(shù)4 keyf,可選,作用跟key一樣,但是可以指定一個(gè)函數(shù)創(chuàng)建一個(gè)原本不存在于文檔中的字段作為分組的依據(jù),需要傳入一個(gè)當(dāng)前文檔的參數(shù)
  • 參數(shù)5 cond 過濾條件,只有滿足該條件的文檔才能參與分組
  • 參數(shù)6 finalize 在分組完成后執(zhí)行的函數(shù),傳入代表initial的參數(shù)
    下面來看一個(gè)例子就能大致上了解了,先傳入幾個(gè)文檔到orders集合中
data1={ 
 "_id" : ObjectId("552a330e05c27486b9b9b650"), 
 "_class" : "com.mongo.model.Orders", 
 "onumber" : "002", 
 "date" : ISODate("2014-01-03T16:03:00Z"), 
 "cname" : "zcy", 
 "item" : { 
  "quantity" : 1, 
  "price" : 4.0, 
  "pnumber" : "p002" 
 } 
}
data2={ 
 "_id" : ObjectId("552a331d05c275d8590a550d"), 
 "_class" : "com.mongo.model.Orders", 
 "onumber" : "003", 
 "date" : ISODate("2014-01-04T16:03:00Z"), 
 "cname" : "zcy", 
 "item" : { 
  "quantity" : 10, 
  "price" : 2.0, 
  "pnumber" : "p001" 
 } 
} 
data3={ 
 "_id" : ObjectId("552a333105c2f28194045a72"), 
 "_class" : "com.mongo.model.Orders", 
 "onumber" : "003", 
 "date" : ISODate("2014-01-04T16:03:00Z"), 
 "cname" : "zcy", 
 "item" : { 
  "quantity" : 30, 
  "price" : 4.0, 
  "pnumber" : "p002" 
 } 
} 
data4={ 
 "_id" : ObjectId("552a333f05c2b62c01cff50e"), 
 "_class" : "com.mongo.model.Orders", 
 "onumber" : "004", 
 "date" : ISODate("2014-01-05T16:03:00Z"), 
 "cname" : "zcy", 
 "item" : { 
  "quantity" : 5, 
  "price" : 4.0, 
  "pnumber" : "p002" 
 } 
} 
db.orders.insert(data1)
db.orders.insert(data2)
db.orders.insert(data3)
db.orders.insert(data4)

接下來展示group()函數(shù)

例1

db.orders.group({
key:{data:1,'item.pnumber':1},
initial:{'total':0},
reduce:function (doc,out){
out.total+=doc.item.quantity
}
})

首先是按照data和ietm數(shù)組中的pnumber分組
接著定義了輸出變量total,記錄每個(gè)產(chǎn)品的總數(shù)
接著是定義處理函數(shù),也就是reduce中的函數(shù),注意,傳入?yún)?shù)的先后順序,第一個(gè)參數(shù)表示當(dāng)前進(jìn)行分組的文檔,第二個(gè)參數(shù)表示initial,所以doc能直接調(diào)用doc.item.quantity,即文檔的內(nèi)容,out能調(diào)用out.total,即initial的內(nèi)容

例2

db.orders.group({
keyf:function(doc){
return {'month':doc.date.getMonth()+1};
},
initial:{'total':0,'money':0},
reduce:function (doc,out){
out.total+=doc.item.quantity*doc.item.price
},
finalize:function (out){
out.avg=out.money/out.total;
return out;
}
})

首先,這個(gè)例子展示了keyf的用法,他返回了一個(gè)新的字段--month,接下來mongodb會按照month的計(jì)算結(jié)果分類
接著,就是在keyf以及finalize的函數(shù)中都有傳入?yún)?shù),其實(shí)這個(gè)參數(shù)跟reduce中的參數(shù)名字沒有關(guān)系,這里寫在一起主要是為了便于理解其含義
最后就是在finalize中臨時(shí)創(chuàng)建了一個(gè)變量avg,這個(gè)avg在最后也是會被輸出的
最后一點(diǎn),在函數(shù)中處理結(jié)果都是會被return的

----------------使用條件操作符來篩選查詢結(jié)果------------------

一般情況下都使用在find()的第一個(gè)參數(shù)內(nèi)部,作為篩選條件使用

---$gt,$lt,$get,$lte,$ne---

db.collection_name.find(
{
key_name:{$gt:value}
})

注意操作符的位置,看例子可以便于理解

db.student.find(
{
'height':{$gt:180}
})

表示篩選出學(xué)生集合中身高高于180的學(xué)生

可以同時(shí)使用兩個(gè)操作符來指定范圍

db.student.find({
'height':{$gt:180,$lt:220}
})

這兩個(gè)的使用方法跟上面是一樣的,但是需要單獨(dú)拎出來講,因?yàn)橛悬c(diǎn)特殊

---$in,$nin---

db.student.find({
'height':{$in:[170,180,190,200]}
})

表示篩選出身高為170,180,190,200的學(xué)生,$nin就是篩選除了170,180,190,200之外的學(xué)生

---$all---

上面的$in中的內(nèi)容是‘或'的形式,只要你的身高是170,或180,或190,或200,那么你就符合篩選條件,而$all則是且的關(guān)系

db.student.find({
'height':{$all:[170,180,190,200]}
})

這句話的意思是你的身高既是170,又是180,又是190,又是200才能滿足條件

---$or---

db.student.find({
$or:[
{'score':100},
{'sex':man}
]
})

上面的例子中,score:100與sex:man是‘或'的關(guān)系,結(jié)合下面的例子就可以看出$or的作用了

db.student.find(
{'score':100,'sex':'man'}
)

其中的score:100與sex:man是且的關(guān)系

limit(x)函數(shù)加skip(y)函數(shù)=$slice:[y,x]

具體使用方法可以看下面這個(gè)例子

db.student.find(
{},
{'height':{$slice:[10,5]}}
)

還是那句老話,注意$slice的位置,這句話表示篩選身高第11到15的人,第一個(gè)參數(shù)是skip()的參數(shù),第二個(gè)是limit()

limit()函數(shù)是限制返回文檔的數(shù)量的,$size是篩選符合數(shù)量的數(shù)組的,看下面的例子就明白了

先在數(shù)據(jù)庫中添加以下信息

message={
'cds':[
{'first_song':'hello'},
{'second_song':'world'},
{'third_song':'again'}
]
}
db.songs.insert(message)

接著我們來查詢一下上述結(jié)果

db.songs.find(
{'cds':{$size:2}}
)

無返回結(jié)果,因?yàn)閏ds數(shù)組里有3組數(shù)據(jù)

db.songs.find(
{'cds':{$size:3}}
)

返回全部結(jié)果,注意一點(diǎn),這里是作為find()函數(shù)的第一個(gè)參數(shù)傳入的,所以是篩選條件

篩選含有特定字段的值

db.collection_name.find(
{
key_name:{$exit:true}
})

返回存在該字段的文檔,注意,這里是存在該字段,而沒有指定該字段的具體內(nèi)容

根據(jù)數(shù)據(jù)類型篩選返回結(jié)果

db.collection_name.find(
{
'key_name':{$type:x}
})

其中的x取值內(nèi)容有很多,這里就不介紹了,因?yàn)樘嗔丝匆槐橐矝]用

在篩選中使用正則表達(dá)式

db.collection_name.find(
{
'key_name':/ /
})

在/  /中添加正則表達(dá)式的內(nèi)容

更新數(shù)據(jù)

db.collection_name.update({original_key:original_value},{new_key:new_value})

1、只要原 collection 中包含 original_key:original_value 就會被選中成為操作對象

2、整個(gè) collection 都會被更新成 new_key:new_value ,而不單單就只是更新 original_key:original_value

相較于上面會更新整個(gè)集合,下面添加了 $set: 的形式來只進(jìn)行部分字段的更新

db.collection_name.update({original_key:original_value},{$set:{new_key:new_value}})

上面使用$set更新了一條字段,可以使用$unset刪除一條字段

db.collection_name.update{
{},
{$unset:{key:value}}
}

如果此更新數(shù)據(jù)不存在就創(chuàng)建這一條數(shù)據(jù),加第三個(gè)參數(shù)為 true 就可以實(shí)現(xiàn)了

db.collection_name.update({original_key:original_value},{new_key:new_value},true)

或者下面的形式也可以

db.collection_name.update({original_key:original_value},{new_key:new_value},{upsert:true})

update 只會更新第一條滿足條件的記錄,但是想更新多條記錄時(shí),將第三個(gè)參數(shù)設(shè)置為 false,第四個(gè)參數(shù)設(shè)置為 true,而且還要設(shè)置 $set

db.collection_name.update({original_key:original_value},{$set{new_key:new_value}},false,true)

------------------插入數(shù)據(jù)——數(shù)組部分--------------------

插入數(shù)據(jù)

db.collection_name.update(
{original_key:value},
{$push:{
new_key:new:value
}}
)

注意,如果original_key不存在,則會被創(chuàng)建,并且定義為數(shù)組的形式,new_key:value則是第一個(gè)值
如果original_key存在,并且數(shù)數(shù)組,則插入new_key:value,如果不是數(shù)組,則報(bào)錯(cuò)

一次性插入多個(gè)值,前面是使用$push一次插入一個(gè)值,如果想插入多個(gè)值的話,需要使用下面的內(nèi)容

db.collection_name.update(
{original_key:value},
{$push:{
new_key:{
$each:[
'value1',
'value2',
'value3'
]
}
}
})

注意這里的$push是針對數(shù)組操作的,也就是$each后面的內(nèi)容都將添加到new_key的數(shù)組中

與$push對應(yīng),$pop刪除數(shù)組中的數(shù)據(jù)

db.collection_name.update(
{original_key:value},
{$pop:{
{original_key:1}
}
})

注意,這里的1表示刪除的數(shù)量,可以是2,3等整數(shù),表示從數(shù)組的后端開始刪除,也可以是-1等負(fù)數(shù),表示從數(shù)組的前端開始刪除

前面的$pop可以指定刪除的數(shù)量,但是不能指定刪除的條件,$pull則可以

db.collection_name.update(
{original_key:value},
{$pull:
{key1:value1}
}
)

$pull會刪除掉key1中所有value1的數(shù)據(jù),注意,是刪除key1中的value1數(shù)據(jù),不是刪除key1,所以只要key1數(shù)組中包含了value1就會被刪除掉value1

與$pull類似,$pullAll可以刪除掉多個(gè)數(shù)據(jù)

db.collection_name.update(
{original_key:value},
{$pullAll:{
key1:
[
'value1',
'value2',
'value3'
]
}
})

$addToSet是一個(gè)非常實(shí)用的向數(shù)組添加數(shù)據(jù)的命令,如果該數(shù)據(jù)不存在則添加,存在就不會重復(fù)添加了

db.collection_name.update(
{original_key:value},
{$addToSet:{
new_key:{
$each:[
'value1',
'value2',
'value3'
]
}
}
})

設(shè)想一下,如果這里不添加$each的情況,如果不添加$each,則會變成往數(shù)組new_key中直接添加新的數(shù)組

['value1','value2','value3']

可以嘗試一下,理解$each的功能,回到$addToSet上來,如果原數(shù)組中就存在value1,value2,value3則不會添加,如果不存在,則將沒有的添加進(jìn)去,有的也不會重復(fù)添加,彼此之間不是互相影響的。

原子操作

這里就不解釋什么叫原子操作了,對于我們使用者來說只要知道怎么采用原子操作就可以了

db.collection_name.findAndModify(
{
query:{key:value},
sort:{key2:1/-1},
update/remove:true,
new:true
}
)

query 指定查詢的文檔
sort  排序,1,-1的含義這里就不解釋了,跟上面一樣
update/remove 表示操作
new  表示返回最終的修改結(jié)果,可以不填

刪除所有查找到的數(shù)據(jù)

db.coolection_name.remove({key:value})

刪除一張表

db.collection_name.drop()

查看集合的索引

db.collection_name.getIndexes()

創(chuàng)建索引

db.collection_name.ensureIndex({key:value})

前面是根據(jù)key:value的形式創(chuàng)建索引的,接下來就為一集合的某一字段全部創(chuàng)建索引

db.collection_name.ensureIndex({key:1})

復(fù)合索引的創(chuàng)建就是在其中多添加幾個(gè)內(nèi)容

刪除索引

db.collection_name.dropIndex({key:value})

刪除所有索引

db.collection_name.dropIndexes()

前面我們操作的都是一個(gè)集合,接下來我們要學(xué)習(xí)簡單的操作多個(gè)集合了,有兩種方式,手動(dòng)或者使用DBRef
先創(chuàng)建兩個(gè)集合

collection1={
'name':'yang',
'sex':'man'
}
collection2={
'id':1,
'name':'yang',
'math':60,
'pe':30,
'chinese':60
}
db.student.save(collection2)
db.yang.save(collection)

接下來就是大致思路了

yang=db.yang.findOne()
db.student.find(
{'name':yang.name}
)

mongodb不支持像傳統(tǒng)的關(guān)系型數(shù)據(jù)庫那樣的多表操作,mongodb都是需要先將數(shù)據(jù)保存好,再來調(diào)用的,如上面的yang保存的就是find()查詢所需要的內(nèi)容,需要先將數(shù)據(jù)從數(shù)據(jù)庫中讀出保存好再來調(diào)用,其中yang.name就等于'yang'

接下來就是使用DBRef引用數(shù)據(jù)庫了,調(diào)用DBRef需要傳入三個(gè)參數(shù),第一個(gè)調(diào)用的collection_name,id,db_name,這個(gè)可選,還是上面的這個(gè)例子,接下來使用DBRef的方式,這玩意我搞不定

希望本文所述對大家MongoDB數(shù)據(jù)庫程序設(shè)計(jì)有所幫助。

您可能感興趣的文章:
  • Ubuntu下安裝PHP的mongodb擴(kuò)展操作命令
  • MongoDB常用操作命令大全
  • MongoDB常用數(shù)據(jù)庫命令大全
  • mongodb基本命令實(shí)例小結(jié)
  • MongoDB使用mongoexport和mongoimport命令,批量導(dǎo)出和導(dǎo)入JSON數(shù)據(jù)到同一張表的實(shí)例
  • MongoDB基礎(chǔ)命令以及操作示例詳解
  • mongodb監(jiān)控工具mongostat的使用及命令詳解
  • Mongodb 啟動(dòng)命令mongod參數(shù)說明(中文翻譯)
  • MongoDB使用自帶的命令行工具進(jìn)行備份和恢復(fù)的教程
  • MongoDB數(shù)據(jù)庫常用的10條操作命令

標(biāo)簽:遼陽 興安盟 自貢 玉林 雞西 廈門 泰安 無錫

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《MongoDB Shell 命令實(shí)例總結(jié)【進(jìn)階篇】》,本文關(guān)鍵詞  MongoDB,Shell,命令,實(shí)例,總結(jié),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《MongoDB Shell 命令實(shí)例總結(jié)【進(jìn)階篇】》相關(guān)的同類信息!
  • 本頁收集關(guān)于MongoDB Shell 命令實(shí)例總結(jié)【進(jìn)階篇】的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    黄色av免费播放| 国产区精品视频在线观看豆花| 亚洲欧洲精品在线| av网站免费观看| 成人一区二区免费视频| 久草福利资源站| 中文字幕日韩精品一区| av影片免费在线观看| 久久精品视频va| 国产视频一区二区不卡| 亚洲综合激情另类小说区| 182在线视频观看| 7777kkk亚洲综合欧美网站| 美日韩中文字幕| 在线不卡一区二区三区| 日本不卡免费新一二三区| 亚洲免费观看在线| 91chinesevideo永久地址| 黄色av网站免费观看| 四虎影在永久在线观看| 色se01短视频永久免费| 色播视频在线播放| 天天干天天操天天玩| 深夜激情久久| 日韩视频永久免费观看| 天天综合网站| 免费高清成人| 小早川怜子一区二区的演员表| 五月婷婷亚洲| 成人国产视频在线| 久久亚洲一区二区三区四区五区高| 久草在线资源网| 性高潮久久久久久久久| 日本免费在线视频| 激情视频网站在线观看| 国产污视频在线观看| 日韩一级在线视频| 国产成人精品一区二区在线小狼| 国产精品成人午夜| 成人亚洲一区二区| 福利在线观看| 日本一二三区视频免费高清| 亚洲国产精品成人一区二区在线| 91精品国产综合久久久久久漫画| 国产三级精品在线观看| 亚洲综合爱爱久久网| 五码日韩精品一区二区三区视频| 成人在线影视| 精品国产一区二区三区噜噜噜| 玖玖在线免费视频| 高潮白浆视频| 18成人免费观看视频漫画| 欧美大码xxxx| 成人免费黄色av| 蜜桃视频在线观看www| 精品视频99| 伊人久久大香线蕉精品组织观看| 国产综合久久久久久久久久久久| 亚洲人成在线免费观看| 国产精品免费精品自在线观看| a级片一区二区| 国产亚洲精品美女久久久久久久久久| 婷婷夜色潮精品综合在线| 丰腴饱满的极品熟妇| 欧美国产日韩xxxxx| 999sesese| 成人在线二区| 日韩电影免费在线| 亚洲av片一区二区三区| 三妻四妾完整版在线观看电视剧| 91在线观看下载| 精品无人乱码一区二区三区的优势| 青娱乐精品在线视频| 国产三级精品三级在线观看国产| 天天躁日日躁狠狠躁av麻豆男男| www.激情五月.com| 久久成人免费日本黄色| 牛牛精品成人免费视频| 久久久久久亚洲| 亚洲免费一在线| 免费人成精品欧美精品| 成人av网站在线| 国产成人夜色高潮福利影视| 日韩国产精品久久久| av自拍一区| 亚洲成人精品一区二区| 国产91丝袜美女在线播放| 国产精品三级在线观看| 91精品国产免费久久久久久| 96成人在线视频| 亚洲黄色免费电影| 精品国产一区二区三区久久久狼| 哺乳挤奶一区二区三区免费看| 懂色av懂色av粉嫩av| 亚洲综合图色| 青青草97国产精品免费观看无弹窗版| 日本成人中文| 91精品一久久香蕉国产线看观看| 欧美另类极品videosbest最新版本| 国产精久久一区二区| 99免费精品| xfplay资源站色先锋在线观看| 亚洲熟女www一区二区三区| 亚洲 国产 日韩 综合一区| 亚洲国产欧美日韩| 国产精品视频一区国模私拍| 亚洲图片制服诱惑| 欧美精品xx| 国产精品91久久久| 好吊色这里只有精品| 日韩综合另类| 亚洲国产视频一区二区三区| 欧美视频免费播放| 午夜欧美大尺度福利影院在线看| 亚洲欧洲日韩综合一区二区| 一卡二卡3卡四卡高清精品视频| 精品动漫3d一区二区三区免费版| 亚洲精品美女视频| 免费高清在线| 久久精品官网| 午夜福利视频一区二区| 国产精品免费看片| 老司机午夜精品视频| 欧美日韩在线综合| 日韩欧美中文在线观看| 中文字幕 国产精品| 欧美高清视频一二三区| 交100部在线观看| 91黄色免费观看| 欧美激情高清视频| 蜜臀一区二区三区精品免费视频| 免费看的国产视频网站| 亚洲一区二区视频在线播放| 成人小视频免费观看| 国产特级黄色片| 亚洲av无码一区二区三区dv| 精品久久久99| 视频一区二区三区国产| 国产女人爽到高潮a毛片| 精品无码黑人又粗又大又长| 日韩av中文字幕第一页| 91视视频在线直接观看在线看网页在线看| 免费黄色大片| 日韩免费观看一区二区| 精品婷婷伊人一区三区三| 久一视频在线观看| 最新高清无码专区| 日韩黄色片网站| 久久久久久久久四区三区| 久久久久国色av免费观看性色| 亚洲男女毛片无遮挡| 成人一区二区不卡免费| 综合久久久久久久| 久久久久久一区二区三区四区别墅| 蜜桃视频一区二区三区在线观看| 在线免费看91| 理论不卡电影大全神| 香蕉av一区| a91a精品视频在线观看| 性生交大片免费看l| 在线免费av网站| 国产精品嫩草影院一区二区| 欧美黄视频在线观看| 青青草视频网站| 国产精品美女久久久久av爽李琼| aⅴ在线视频男人的天堂| 亚洲精品xxxx| 麻豆一区二区| 免费观看成人网| 色综合视频一区二区三区高清| www欧美xxxx| 加勒比久久高清| 91在线观看地址| a黄色在线观看| 色香阁99久久精品久久久| 国产性猛交╳xxx乱大交| av天天av| 成人写真视频福利网| 日韩va亚洲va欧美va清高| 成午夜精品一区二区三区软件| 四虎国产成人精品免费一女五男| 国产精品日日摸夜夜添夜夜av| 亚洲欧洲日本韩国| 亚洲女同一区二区| 欧美成人剧情片在线观看| 色爱av美腿丝袜综合粉嫩av| 日韩成人中文电影| 亚洲欧洲视频在线| 国产精品二区在线观看| 久久久久久久久久久久久久久久久| 激情aⅴ欧美一区二区欲海潮| 91影院未满十八岁禁止入内| 国产又色又爽又黄刺激在线视频| 超级碰碰久久| 国产黄色在线观看| 中文字幕手机在线视频| 国产成人免费观看视频| 国产小视频国产精品| 国产精品久久久久久久久久尿| 国产精品色呦呦| 精品在线播放免费| 国内精品美女av在线播放| 91中文字幕在线视频| 国产精区一区二区| 91国模少妇一区二区三区| 欧美尿孔扩张虐视频| 久久久久久亚洲av无码专区| 99re国产精品| 欧美亚洲视频一区二区| 午夜视频精品| 男人添女荫道口女人有什么感觉| 极品尤物av久久免费看| 国产精品99蜜臀久久不卡二区| 国产av无码专区亚洲精品| 在线亚洲人成电影网站色www| 亚洲三级黄色在线观看| 亚洲精品中文字幕有码专区| 日韩电影中文字幕在线观看| 性欧美精品男男| 亚洲午夜未满十八勿入免费观看全集| japanese色系久久精品| 美女一区二区三区在线观看| 最新中文字幕亚洲| 欧美亚洲视频在线看网址| 亚洲精品一区二区三区影院忠贞| 狼人精品一区二区三区在线| 国产尤物一区二区三区| 亚洲天堂av免费在线观看| 肉丝袜脚交视频一区二区| 亚洲欧美一二三| 国产精品日韩成人| 一本大道av一区二区在线播放| 精品黑人一区二区三区在线观看| 中国视频免男男gay| 亚洲日本va在线观看| 国产日产欧美一区二区| 欧美一区二区三区人| 亚洲国产精品毛片av不卡在线| 亚洲国产精品久久人人爱| 亚洲专区视频| 亚洲精品第一国产综合精品| 久久人人88| 丝瓜app色版网站观看| 欧美私人情侣网站| 四虎成人精品在永久免费| 亚洲视频狠狠| 日本女人高潮视频| 国产精品一卡二卡三卡| 国产乱子夫妻xx黑人xyx真爽| 99国产精品久久久久久久成人热| 香港欧美日韩三级黄色一级电影网站| 欧美三级网色| 国产精品久久久一区二区| 熟女人妻在线视频| 国产精品视频久久| 日韩精品视频免费| 日皮视频在线观看| 精品国产xxx| 国产一区国产二区国产三区| 亚洲熟女乱色一区二区三区| 高清av在线| 国产精品久久久久久久龚玥菲| 亚洲日韩欧美视频一区| 亚洲高清视频一区二区| 欧美做爰猛烈大尺度视频| 韩国视频理论视频久久| 麻豆专区一区二区三区四区五区| 电影eeuss影院www| 欧美jizz18| 欧美午夜在线观看| 国产超级av在线| 成人黄色av免费在线观看| 91gao视频| 69视频在线免费观看| 制服丝袜影音| 羞羞视频在线观看欧美| 成人一二三四区| 91亚洲精品视频在线观看| 亚洲一级爰片777777| 欧美欧美全黄| 国产精品美女www爽爽爽视频| 天天噜噜噜噜噜噜| 日韩美女在线看免费观看| 男女毛片免费视频看| 亚洲天堂免费在线| 成人精品视频一区二区三区尤物| 欧美三级网色| 国产精品天干天干在观线| av成人老司机| 深夜福利视频在线观看| 日韩在线激情视频| 天天色天天综合| 做爰视频毛片视频| 中国色在线日|韩| 精品国一区二区三区| 97国产精品免费视频| 欧美国产综合色视频| xfplay每日更新av资源在线| 婷婷国产在线综合| 波多野结衣在线观看视频| 国产福利成人在线| 亚洲第一成人在线视频| 国产无码精品在线播放| 999国产视频| 多人欧美交性姿势| 欧美男男gaytwinkfreevideos| 日韩激情视频在线观看| 免费观看一级一片| 中文字幕亚洲乱码熟女1区2区| 91在线看黄| 欧洲精品在线观看| 国产精品普通话对白| 欧美一区二区视频免费观看| 黄色在线视频网址| 久久久一本精品99久久精品| 精品激情国产视频| 偷拍25位美女撒尿视频在线观看| 无码久久精品国产亚洲av影片| 91精品国产色综合久久不卡粉嫩| 亚洲精选一区二区三区| 色综合久久网女同蕾丝边| 国产精品合集一区二区| 久久久久久无码精品大片| 精品亚洲va在线va天堂资源站| 毛片免费视频| 精品久久久999| 亚洲综合999| 日本少妇激情视频|