精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

R語言利劍之NoSQL系列:MongoDB

數據庫 其他數據庫 MongoDB
R利劍NoSQL系列文章,主要介紹通過R語言連接使用NoSQL數據庫。涉及的NoSQL產品,包括Redis, MongoDB, HBase, Hive, Cassandra, Neo4j。希望通過我的介紹讓廣大的R語言愛好者,有更多的開發選擇,做出更多地激動人心的應用。

由于文章篇幅有限,均跳過NoSQL的安裝過程,請自行參考文檔安裝。

***篇 R利劍MongeDB,分為4個章節。

MongoDB環境準備
rmongodb函數庫
rmongodb基本使用操作
rmongodb測試案例

每一章節,都會分為”文字說明部分”和”代碼部分”,保持文字說明與代碼的連貫性。

1. MongoDB環境準備

文字說明部分:

首先環境準備,這里我選擇了Linux Ubuntu操作系統12.04的32位桌面版本,大家可以根據自己的使用習慣選擇順手的Linux。

MongoDB安裝過程跳過。

查看MongoDB服務器環境
使用mongod命令,啟動MongoDB。

進程號:pid=2924
端口:port=27017
數據文件目錄:dbpath=/data/db/
軟件版本:32-bit
主機名:host=conan

使用mongo命令,打開mongo shell。

mongo shell的簡單操作:
查看數據庫,切換數據庫,查看數據集.

R語言環境2.15.0,WinXP通過遠程連接,訪問Mongodb Server。

代碼部分:

查看操作系統

~ uname -a

    Linux conan 3.2.0-38-generic-pae #61-Ubuntu SMP Tue Feb 19 12:39:51 UTC 2013 i686 i686 i386 GNU/Linux

~ cat /etc/issue

    Ubuntu 12.04.2 LTS \n \l

啟動mongodb

~ mongod

    mongod --help for help and startup options
    Thu Apr 11 11:02:26
    Thu Apr 11 11:02:26 warning: 32-bit servers don't have journaling enabled by default. Please use --journal if you want durability.
    Thu Apr 11 11:02:26
    Thu Apr 11 11:02:26 [initandlisten] MongoDB starting : pid=2924 port=27017 dbpath=/data/db/ 32-bit host=conan
    Thu Apr 11 11:02:26 [initandlisten]
    Thu Apr 11 11:02:26 [initandlisten] ** NOTE: when using MongoDB 32 bit, you are limited to about 2 gigabytes of data
    Thu Apr 11 11:02:26 [initandlisten] **       see http://blog.mongodb.org/post/137788967/32-bit-limitations
    Thu Apr 11 11:02:26 [initandlisten] **       with --journal, the limit is lower
    Thu Apr 11 11:02:26 [initandlisten]
    Thu Apr 11 11:02:26 [initandlisten] db version v2.0.6, pdfile version 4.5
    Thu Apr 11 11:02:26 [initandlisten] git version: e1c0cbc25863f6356aa4e31375add7bb49fb05bc
    Thu Apr 11 11:02:26 [initandlisten] build info: Linux domU-12-31-39-01-70-B4 2.6.21.7-2.fc8xen #1 SMP Fri Feb 15 12:39:36 EST 2008 i686 BOOST_LIB_VERSION=1_41
    Thu Apr 11 11:02:26 [initandlisten] options: {}
    Thu Apr 11 11:02:26 [websvr] admin web console waiting for connections on port 28017
    Thu Apr 11 11:02:26 [initandlisten] waiting for connections on port 27017

打開mongo shell

~ mongo

    MongoDB shell version: 2.0.6
    connecting to: test

進入mongo shell, 列表顯示數據庫

> show dbs

    db      0.0625GB
    feed    0.0625GB
    foobar  0.0625GB
    local   (empty)

切換數據庫

> use foobar

   switched to db foobar

列表顯示數據集

> show collections

    blog
    system.indexes

R語言開發環境2.15.0,WinXP

~ R
R version 2.15.0 (2012-03-30)
Copyright (C) 2012 The R Foundation for Statistical Computing
ISBN 3-900051-07-0
Platform: i386-pc-mingw32/i386 (32-bit)

2. rmongodb函數庫

文字說明部分:

rmongodb的開發了一大堆的函數,對應mongo的操作。比起別的NoSQL來說,真是工程浩大啊。但我總覺得封裝粒度不夠,寫起代碼來比較復雜。

下面列出了所有rmongodb函數庫,我只挑選幾個常用的介紹。

建立mongo連接

mongo<-mongo.create()

查看接連是否正常

mongo.is.connected(mongo)

創建一個BSON對象緩存

buf <- mongo.bson.buffer.create()

給對象buf增加element

mongo.bson.buffer.append(buf, "name", "Echo")

增加對象類型的element

score <- c(5, 3.5, 4)
names(score) <- c("Mike", "Jimmy", "Ann")
mongo.bson.buffer.append(buf, "score", score)

增加數組類型的element

mongo.bson.buffer.start.array(buf, "comments")
mongo.bson.buffer.append(buf, "0", "a1")
mongo.bson.buffer.append(buf, "1", "a2")
mongo.bson.buffer.append(buf, "2", "a3")

關閉數組類型的element

mongo.bson.buffer.finish.object(buf)

取出緩存數據

b <- mongo.bson.from.buffer(buf)

數據庫.數據集

ns="db.blog"

插入一條記錄

mongo.insert(mongo,ns,b)

#mongo shell:(Not Run)
db.blog.insert(b)

創建查詢對象query

buf <- mongo.bson.buffer.create()
mongo.bson.buffer.append(buf, "name", "Echo")
query <- mongo.bson.from.buffer(buf)

創建查詢返回值對象

buf <- mongo.bson.buffer.create()
mongo.bson.buffer.append(buf, "name", 1)
fields <- mongo.bson.from.buffer(buf)

執行單條記錄查詢

mongo.find.one(mongo, ns, query, fields)

#mongo shell:(Not Run)
db.blog.findOne({query},{fields})

執行列表記錄查詢

mongo.find(mongo, ns, query, fields)

#mongo shell:(Not Run)
db.blog.find({query},{fields})

創建修改器對象objNew

buf <- mongo.bson.buffer.create()
mongo.bson.buffer.start.object(buf, "$inc")
mongo.bson.buffer.append(buf, "age", 1L)
mongo.bson.buffer.finish.object(buf)
objNew <- mongo.bson.from.buffer(buf)

執行修改操作

mongo.update(mongo, ns, query, objNew)

#mongo shell:(Not Run)
db.blog.update({query},{objNew})

單行代碼修改操作

mongo.update(mongo, ns, query, list(name="Echo", age=25))

#mongo shell:(Not Run)
db.blog.update({query},{objNew})

刪除所選對象

mongo.remove(mongo, ns, query)

#mongo shell:(Not Run)
db.blog.remove({query},{objNew})

銷毀mongo連接

mongo.destroy(mongo)

代碼部分:

共有153個函數

mongo.add.user
mongo.authenticate
mongo.binary.binary
mongo.binary.function
mongo.binary.md5
mongo.binary.old
mongo.binary.user
mongo.binary.uuid
mongo.bson.array
mongo.bson.binary
mongo.bson.bool
mongo.bson.buffer.append
mongo.bson.buffer.append.bool
mongo.bson.buffer.append.bson
mongo.bson.buffer.append.code
mongo.bson.buffer.append.code.w.scope
mongo.bson.buffer.append.complex
mongo.bson.buffer.append.double
mongo.bson.buffer.append.element
mongo.bson.buffer.append.int
mongo.bson.buffer.append.list
mongo.bson.buffer.append.long
mongo.bson.buffer.append.null
mongo.bson.buffer.append.object
mongo.bson.buffer.append.oid
mongo.bson.buffer.append.raw
mongo.bson.buffer.append.regex
mongo.bson.buffer.append.string
mongo.bson.buffer.append.symbol
mongo.bson.buffer.append.time
mongo.bson.buffer.append.timestamp
mongo.bson.buffer.append.undefined
mongo.bson.buffer.create
mongo.bson.buffer.finish.object
mongo.bson.buffer.size
mongo.bson.buffer.start.array
mongo.bson.buffer.start.object
mongo.bson.code
mongo.bson.code.w.scope
mongo.bson.date
mongo.bson.dbref
mongo.bson.destroy
mongo.bson.double
mongo.bson.empty
mongo.bson.eoo
mongo.bson.find
mongo.bson.from.buffer
mongo.bson.from.list
mongo.bson.int
mongo.bson.iterator.create
mongo.bson.iterator.key
mongo.bson.iterator.next
mongo.bson.iterator.type
mongo.bson.iterator.value
mongo.bson.long
mongo.bson.null
mongo.bson.object
mongo.bson.oid
mongo.bson.print
mongo.bson.regex
mongo.bson.size
mongo.bson.string
mongo.bson.symbol
mongo.bson.timestamp
mongo.bson.to.list
mongo.bson.undefined
mongo.bson.value
mongo.code.create
mongo.code.w.scope.create
mongo.command
mongo.count
mongo.create
mongo.cursor.destroy
mongo.cursor.next
mongo.cursor.value
mongo.destroy
mongo.disconnect
mongo.distinct
mongo.drop
mongo.drop.database
mongo.find
mongo.find.await.data
mongo.find.cursor.tailable
mongo.find.exhaust
mongo.find.no.cursor.timeout
mongo.find.one
mongo.find.oplog.replay
mongo.find.partial.results
mongo.find.slave.ok
mongo.get.database.collections
mongo.get.databases
mongo.get.err
mongo.get.hosts
mongo.get.last.err
mongo.get.prev.err
mongo.get.primary
mongo.get.server.err
mongo.get.server.err.string
mongo.get.socket
mongo.get.timeout
mongo.gridfile.destroy
mongo.gridfile.get.chunk
mongo.gridfile.get.chunk.count
mongo.gridfile.get.chunks
mongo.gridfile.get.chunk.size
mongo.gridfile.get.content.type
mongo.gridfile.get.descriptor
mongo.gridfile.get.filename
mongo.gridfile.get.length
mongo.gridfile.get.md5
mongo.gridfile.get.metadata
mongo.gridfile.get.upload.date
mongo.gridfile.pipe
mongo.gridfile.read
mongo.gridfile.seek
mongo.gridfile.writer.create
mongo.gridfile.writer.finish
mongo.gridfile.writer.write
mongo.gridfs.create
mongo.gridfs.destroy
mongo.gridfs.find
mongo.gridfs.remove.file
mongo.gridfs.store
mongo.gridfs.store.file
mongo.index.background
mongo.index.create
mongo.index.drop.dups
mongo.index.sparse
mongo.index.unique
mongo.insert
mongo.insert.batch
mongo.is.connected
mongo.is.master
mongo.oid.create
mongo.oid.from.string
mongo.oid.print
mongo.oid.time
mongo.oid.to.string
mongo.reconnect
mongo.regex.create
mongo.remove
mongo.rename
mongo.reset.err
mongo.set.timeout
mongo.shorthand
mongo.simple.command
mongo.symbol.create
mongo.timestamp.create
mongo.undefined.create
mongo.update
mongo.update.basic
mongo.update.multi
mongo.update.upsert

3. rmongodb基本使用操作

文字說明部分:

首先,要安裝rmongodb類庫,加載類庫。

然后,通過mongo.create()函數,建立與MongoDB Server的連接。如果是本地連接,mongo.create()不要參數,下面例子使用遠程連接,增加host參數配置IP地址。mongo<-mongo.create(host=“192.168.1.11”)

檢查是否連接正常,mongo.is.connected()。這條語句在開發時會經常使用到。在用R語言建模時,如果對象或者函數使用錯誤,連接會被自動斷開。由于MongoDB的異常機制,斷開時不會是提示。大家要手動使用這條命令測試,連接是否正常。

接下來,定義兩個變量,db和ns。db是我們需要使用的數據庫,ns是數據庫+數據集。

下面我們創建一個Mongo對象。

{
        "_id" : ObjectId("51663e14da2c51b1e8bc62eb"),
        "name" : "Echo",
        "age" : 22,
        "gender" : "Male",
        "score" : {
                "Mike" : 5,
                "Jimmy" : 3.5,
                "Ann" : 4
        },
        "comments" : [
                "a1",
                "a2",
                "a3"
        ]
}

然后,分別使用修改器inc,set,$push進行操作。

***刪除對象,并斷開連接。

代碼部分:

安裝rmongodb

install.packages(rmongodb)

加載類庫

library(rmongodb)

遠程連接mongodb server

mongo<-mongo.create(host="192.168.1.11")

查看是否連接正常

print(mongo.is.connected(mongo))

定義db

db<-"foobar"

定義db.collection

ns<-"foobar.blog"

組織bson類型數據

buf <- mongo.bson.buffer.create()
mongo.bson.buffer.append(buf, "name", "Echo")
mongo.bson.buffer.append(buf, "age", 22L)
mongo.bson.buffer.append(buf, "gender", 'Male')

#對象類型
score <- c(5, 3.5, 4)
names(score) <- c("Mike", "Jimmy", "Ann")
mongo.bson.buffer.append(buf, "score", score)

#數組類型
mongo.bson.buffer.start.array(buf, "comments")
mongo.bson.buffer.append(buf, "0", "a1")
mongo.bson.buffer.append(buf, "1", "a2")
mongo.bson.buffer.append(buf, "2", "a3")
mongo.bson.buffer.finish.object(buf)
b <- mongo.bson.from.buffer(buf)

插入mongodb

mongo.insert(mongo,ns,b)

單條顯示插入的數據

buf <- mongo.bson.buffer.create()
mongo.bson.buffer.append(buf, "name", "Echo")
query <- mongo.bson.from.buffer(buf)
print(mongo.find.one(mongo, ns, query))

使用$inc修改器,修改給age加1

buf <- mongo.bson.buffer.create()
mongo.bson.buffer.start.object(buf, "$inc")
mongo.bson.buffer.append(buf, "age", 1L)
mongo.bson.buffer.finish.object(buf)
objNew <- mongo.bson.from.buffer(buf)
mongo.update(mongo, ns, query, objNew)
print(mongo.find.one(mongo, ns, query))

使用$set修改器,修改age=1

buf <- mongo.bson.buffer.create()
mongo.bson.buffer.start.object(buf, "$set")
mongo.bson.buffer.append(buf, "age", 1L)
mongo.bson.buffer.finish.object(buf)
objNew <- mongo.bson.from.buffer(buf)
mongo.update(mongo, ns, query, objNew)
print(mongo.find.one(mongo, ns, query))

使用$push修改器,給comments數組追加”Orange”數據

buf <- mongo.bson.buffer.create()
mongo.bson.buffer.start.object(buf, "$push")
mongo.bson.buffer.append(buf, "comments", "Orange")
mongo.bson.buffer.finish.object(buf)
objNew <- mongo.bson.from.buffer(buf)
mongo.update(mongo, ns, query, objNew)
print(mongo.find.one(mongo, ns, query))

使用簡化修改語句,給對象重新賦值

mongo.update(mongo, ns, query, list(name="Echo", age=25))
print(mongo.find.one(mongo, ns, query))

刪除對象

mongo.remove(mongo, ns, query)

銷毀mongo連接

mongo.destroy(mongo)

4. rmongodb測試案例

文字說明部分:

批量插入數據,使用修改器批量修改數據

3種修改器速度比較,pushpush > set>inc

終于push是對數組操作,set是對任意值操作,inc是對數字操作,所以下面測試可能不太公平。測試結果僅供參考。

代碼部分:

批量插入數據函數

  batch_insert<-function(arr=1:10,ns){
    library(stringr)
    mongo_insert<-function(x){
      buf <- mongo.bson.buffer.create()
      mongo.bson.buffer.append(buf, "name", str_c("Dave",x))
      mongo.bson.buffer.append(buf, "age", x)
      mongo.bson.buffer.start.array(buf, "comments")
      mongo.bson.buffer.append(buf, "0", "a1")
      mongo.bson.buffer.append(buf, "1", "a2")
      mongo.bson.buffer.append(buf, "2", "a3")
      mongo.bson.buffer.finish.object(buf)
      return(mongo.bson.from.buffer(buf))
    }
    mongo.insert.batch(mongo, ns, lapply(arr,mongo_insert))
  }

批量修改,$inc修改器函數

  batch_inc<-function(data,ns){
    for(i in data){
      buf <- mongo.bson.buffer.create()
      mongo.bson.buffer.append(buf, "name", str_c("Dave",i))
      criteria <- mongo.bson.from.buffer(buf)
      buf <- mongo.bson.buffer.create()
      mongo.bson.buffer.start.object(buf, "$inc")
      mongo.bson.buffer.append(buf, "age", 1L)
      mongo.bson.buffer.finish.object(buf)
      objNew <- mongo.bson.from.buffer(buf)
      mongo.update(mongo, ns, criteria, objNew)
    }
  }

批量修改,$set修改器函數

  batch_set<-function(data,ns){
    for(i in data){
      buf <- mongo.bson.buffer.create()
      mongo.bson.buffer.append(buf, "name", str_c("Dave",i))
      criteria <- mongo.bson.from.buffer(buf)
      buf <- mongo.bson.buffer.create()
      mongo.bson.buffer.start.object(buf, "$set")
      mongo.bson.buffer.append(buf, "age", 1L)
      mongo.bson.buffer.finish.object(buf)
      objNew <- mongo.bson.from.buffer(buf)
      mongo.update(mongo, ns, criteria, objNew)
    }
  }

批量修改,$push修改器函數

  batch_push<-function(data,ns){
    for(i in data){
      buf <- mongo.bson.buffer.create()
      mongo.bson.buffer.append(buf, "name", str_c("Dave",i))
      criteria <- mongo.bson.from.buffer(buf)
      buf <- mongo.bson.buffer.create()
      mongo.bson.buffer.start.object(buf, "$push")
      mongo.bson.buffer.append(buf, "comments", "Orange")
      mongo.bson.buffer.finish.object(buf)
      objNew <- mongo.bson.from.buffer(buf)
      mongo.update(mongo, ns, criteria, objNew)
    }
  }

執行程序,3種修改速度比較,$push最慢

ns="foobar.blog" data=1:1000 mongo.remove(mongo, ns) ## [1] TRUE system.time(batch_insert(data, ns)) ## user system elapsed ## 0.25 0.00 0.28 system.time(batch_inc(data, ns)) ## user system elapsed ## 0.47 0.27 2.50 system.time(batch_set(data, ns)) ## user system elapsed ## 0.77 0.48 3.17 system.time(batch_push(data, ns)) ## user system elapsed ## 0.81 0.41 4.23

責任編輯:彭凡 來源: 統計之都
相關推薦

2014-08-01 13:40:50

R語言

2013-04-10 10:31:21

R語言

2011-06-14 09:09:13

NoSQLMongoDB

2023-09-05 10:25:35

數據庫性能

2013-05-31 10:15:29

R語言

2017-10-17 11:58:54

R語言UpSetR可視化

2021-05-18 07:15:37

Python

2010-09-07 09:07:33

MongoDBCouchDB

2013-05-16 09:37:14

R語言

2010-08-31 09:11:58

2013-12-03 11:00:48

2011-04-01 09:29:52

MySQLMongoDB

2011-04-18 10:03:51

NoSQLMongoDB

2011-08-02 16:08:52

NoSQLMongoDBCassandra

2019-03-20 15:59:11

NoSQLRedis數據庫

2011-09-14 15:30:00

MongoDB

2017-11-17 18:40:54

華為

2012-08-29 16:41:44

信息安全RSA華為

2010-03-11 14:37:47

Visual StudScrum

2011-03-04 09:32:31

NoSQL就業形勢Cassandra
點贊
收藏

51CTO技術棧公眾號

a天堂在线视频| 中文字幕乱码人妻综合二区三区| 99热这里只有精| 亚洲二区视频| 亚洲性无码av在线| 成人高清在线观看视频| 天堂中文av在线资源库| 国产精品久久久久四虎| 国产精品免费看一区二区三区| 日韩欧美高清在线观看| 久久国产成人精品| 亚洲精品久久久久久久久| 色播五月综合网| 国产精品蜜臀| 成人欧美一区二区三区1314| 你懂的视频在线一区二区| 91午夜交换视频| 亚洲一区欧美二区| 欧美成人黑人xx视频免费观看| 熟女俱乐部一区二区| 精品视频一区二区三区| 色婷婷国产精品综合在线观看| 国产情侣第一页| 在线观看完整版免费| 99精品久久免费看蜜臀剧情介绍 | 成人三级小说| 中文字幕一区二区在线观看| 欧美日韩亚洲免费| 亚洲欧美激情另类| 国产美女av一区二区三区| 欧美重口另类videos人妖| 久久久久免费看| 午夜精品久久久久久久四虎美女版| 亚洲人成网站免费播放| 在线免费观看污视频| 综合激情久久| 日韩欧美在线一区二区三区| 中文av一区二区三区| 性欧美1819sex性高清| 精品欧美激情精品一区| 国产人妻精品久久久久野外| **欧美日韩在线观看| 香蕉乱码成人久久天堂爱免费| 在线综合视频网站| 国产在线色视频| 久久久久久久久伊人| 久久久久久亚洲精品不卡4k岛国 | 中文字幕日韩精品无码内射| 午夜视频在线| 国产精品入口麻豆九色| 日韩欧美在线观看强乱免费| 免费在线高清av| 久久久久一区二区三区四区| 久久久久久久久久久久久久久久av| 日本激情视频网站| 91原创在线视频| 另类视频在线观看+1080p| 视频二区在线| 久久久久久久久久久99999| 免费观看成人高| 国产永久av在线| 国产免费观看久久| 亚洲.欧美.日本.国产综合在线| 99精品老司机免费视频| 亚洲欧洲精品一区二区三区| 青青草影院在线观看| 欧美午夜大胆人体| 精品高清一区二区三区| 各处沟厕大尺度偷拍女厕嘘嘘| 亚洲播播91| 欧美三级日韩在线| 欧美性受xxxx黒人xyx性爽| 欧美久久一区二区三区| 亚洲第一二三四五区| 影音先锋人妻啪啪av资源网站| 亚州国产精品| 国产精品19乱码一区二区三区| 日韩一二三区| 亚洲国产精品久久久| 国产ts丝袜人妖系列视频| 九九热爱视频精品视频| 在线观看成人黄色| 欧美黄色aaa| 国产精品久久久久9999高清| 国产精品久久激情| 国产三级自拍视频| 99久久综合精品| 亚洲精品国产精品国自产| av中文字幕在线观看| 五月天精品一区二区三区| www.涩涩涩| 91欧美日韩在线| 亚洲天堂av在线免费观看| 免费中文字幕日韩| 国产情侣久久| 91久久夜色精品国产网站| 黄色三级网站在线观看| 国产日韩欧美在线一区| 波多野结衣 作品| 亚洲精品**中文毛片| 在线观看91av| 欧美亚洲伦理www| 妓院一钑片免看黄大片| 久久天天久久| 精品国产污网站| 91在线观看视频| 国产精品女主播| 国产刺激高潮av| 精品国产乱码久久久| 亚洲视频视频在线| 久久精品黄色片| 日韩不卡手机在线v区| eeuss一区二区三区| 国产私拍精品| 亚洲风情在线资源站| 手机看片一级片| 亚洲精品推荐| 欧美国产乱视频| 波多野结衣一区二区三区四区| 成人综合在线视频| 一区二区三区av在线| 免费日韩电影| 亚洲激情视频网站| 国产乱国产乱老熟300| 日韩av成人高清| 麻豆成人小视频| 里番在线播放| 欧美一区二区日韩| 三级黄色录像视频| 日本aⅴ亚洲精品中文乱码| 久久本道综合色狠狠五月| 超碰porn在线| 欧美精品高清视频| 18啪啪污污免费网站| 日韩电影在线一区二区三区| 久久人人九九| 色资源二区在线视频| 精品欧美一区二区在线观看| 久久精品视频免费在线观看| 国产一区高清在线| 亚洲最新免费视频| 美女色狠狠久久| 日韩高清免费观看| 国产情侣自拍av| 91免费国产在线观看| 久久黄色片视频| 丝袜av一区| 欧美一级视频在线观看| 三级做a全过程在线观看| 疯狂做受xxxx高潮欧美日本| 欧美无人区码suv| 亚洲三级免费| 久久草.com| 久久久久久久| 伊人精品在线观看| 在线播放成人av| 国产精品国产三级国产aⅴ原创| 性生活免费在线观看| 99视频精品全部免费在线视频| 国产在线视频一区| 欧美野外wwwxxx| 精品久久国产97色综合| 日韩av电影网| 久久久五月婷婷| 91人人澡人人爽人人精品| 97久久视频| 亚洲一区二区三区久久 | 激情视频亚洲| 欧美激情小视频| 香蕉视频国产在线| 色狠狠一区二区三区香蕉| 日本猛少妇色xxxxx免费网站| 久久精品理论片| 超级碰在线观看| 久久夜色电影| 国产精品免费观看在线| 草莓福利社区在线| 亚洲国产精品推荐| 自拍偷拍精品视频| 亚洲欧美激情小说另类| 91精品又粗又猛又爽| 欧美亚洲一区| 好吊色这里只有精品| 另类ts人妖一区二区三区| 国产精品福利在线观看网址| 成人免费在线| 日韩精品视频在线免费观看| 一二三四区在线| 亚洲一区二区三区视频在线播放| 野外性满足hd| 国产乱一区二区| 妺妺窝人体色www在线小说| 久久精品播放| 精选一区二区三区四区五区| 色噜噜成人av在线| 2021久久精品国产99国产精品| 尤物网在线观看| 日韩高清免费在线| a天堂视频在线| 欧美亚洲精品一区| 国产一级黄色av| 日本一区二区三区久久久久久久久不 | 国产精品久久久久久久久久辛辛| 欧美在线免费视频| 黄网站在线播放| 亚洲午夜激情免费视频| 日日夜夜精品免费| 在线播放日韩导航| 在线免费一区二区| 性欧美大战久久久久久久久| 欧美手机在线观看| 欧美国产禁国产网站cc| 亚洲一区二区三区综合| 国产精品一区二区在线看| 国产一区二区在线免费播放| 国产一区成人| 欧美亚洲黄色片| 亚洲国产精品久久久天堂| 日韩精品成人一区二区在线观看| 久9re热视频这里只有精品| 亚洲一区二区三区乱码aⅴ| 日韩经典一区| 东京干手机福利视频| 国产亚洲成aⅴ人片在线观看| www.久久com| 蜜臀国产一区二区三区在线播放 | 手机av在线播放| 中文字幕亚洲欧美在线| 免费一级在线观看| 亚洲精品成人久久| 亚洲春色一区二区三区| 91精品婷婷国产综合久久性色| 最近国语视频在线观看免费播放| 成人在线小视频| 美州a亚洲一视本频v色道| 欧美不卡在线视频| 国产一区二区在线不卡| 欧美午夜宅男影院| 欧美裸体bbwbbwbbw| 殴美一级黄色片| 国产日韩精品视频一区| 久久人人爽人人爽人人片| 成人永久aaa| www.黄色网| 国产老女人精品毛片久久| 性欧美1819| 精品无人区卡一卡二卡三乱码免费卡 | 黄色一级片在线观看| 色哟哟入口国产精品| 18视频免费网址在线观看| 在线精品国产成人综合| www.av在线播放| 日韩中文字幕网址| 超碰在线最新| 色综合久久88| 爱搞国产精品| 日本久久久久久久久久久| 三上悠亚国产精品一区二区三区| 国产精品99久久久久久久久| 国产成人免费精品| 成人免费网站在线| 北条麻妃在线一区二区免费播放 | 日韩香蕉视频| 黑人糟蹋人妻hd中文字幕| 久久综合导航| 9l视频白拍9色9l视频| 国产一区二三区好的| 国产伦精品一区三区精东| 久久亚区不卡日本| 乡村艳史在线观看| 欧美xxxx在线观看| 粉嫩av一区二区夜夜嗨| 精品精品欲导航| 日本福利片高清在线观看| 国产一区二区三区18| 日本中文字幕在线观看| 欧美成人午夜激情| av在线最新| 国产精品入口免费视| 亚洲黑人在线| 国产精品一区二区三区免费观看| 久操国产精品| 日本三级中文字幕在线观看| 亚洲一区日韩在线| 成人日韩在线视频| k8久久久一区二区三区| 后入内射无码人妻一区| 亚洲线精品一区二区三区 | 91国在线观看| 国产色视频在线| 亚洲欧洲黄色网| av中文字幕在线观看| 欧美中文在线观看国产| 亚洲国产一区二区久久| 免费av在线一区二区| 91精品国产乱码久久久久久| 777久久久精品一区二区三区| 九九视频精品免费| 巨胸大乳www视频免费观看| 亚洲视频一二区| 黄色片视频免费| 欧美va亚洲va| 九义人在线观看完整免费版电视剧| 欧美精品久久久久| 欧美视频第一| 蜜桃av久久久亚洲精品| 一级欧洲+日本+国产| 人妻丰满熟妇av无码区app| 粉嫩嫩av羞羞动漫久久久 | 亚洲电影影音先锋| 国产精品视频一区二区三区四区五区| 国产一区二区不卡在线| 日本少妇高潮喷水xxxxxxx| 亚洲成a人片综合在线| 国产精品热久久| 在线观看亚洲区| 原纱央莉成人av片| 国产欧美精品一区二区三区| 91精品国产视频| 国产精品视频一区二区在线观看 | 六月丁香婷婷在线| 国产精品一区二区在线播放| 日本一二三不卡视频| 五月激情六月综合| 91麻豆精品国产91久久久平台| 欧美日韩国产精品一卡| 91精品国产调教在线观看| 免费在线观看毛片网站| 成人亚洲一区二区一| 2014亚洲天堂| 欧美亚洲综合久久| 欧美人体大胆444www| 68精品久久久久久欧美| 成人av激情人伦小说| 97超碰在线视| 国产精品69久久久久水密桃| 国产精品免费人成网站酒店| 欧美日韩一区二区不卡| 午夜免费播放观看在线视频| 国产精品扒开腿做爽爽爽视频 | 中文视频一区视频二区视频三区| 奇米一区二区三区| 三区四区在线观看| 欧洲生活片亚洲生活在线观看| 噜噜噜噜噜在线视频| 国产91在线播放| 精品国精品国产自在久国产应用| 热久久精品国产| 久久精品视频一区二区三区| 免费精品一区二区| 中文字幕亚洲无线码a| 欧美91在线|欧美| 在线观看成人免费| 国产成人免费av在线| 日韩久久久久久久久| 日韩av一区二区在线| 香蕉成人av| 在线观看日韩片| 国产麻豆精品在线| 国产网站在线看| 亚洲精品永久免费精品| 一呦二呦三呦精品国产| 亚洲午夜激情| 国产成人综合在线观看| 日本一二三区不卡| 亚洲欧美制服综合另类| 欧美美女福利视频| 日韩精品在线观看av| 国产亚洲欧美色| 国产成人精品一区二区无码呦| 久久久久久久久久久国产| 亚洲人成精品久久久 | 中文字幕一区二区日韩精品绯色| 99riav国产| 97精品一区二区三区| 成人在线电影在线观看视频| 精品国产乱码久久久久久1区二区| 亚洲午夜影视影院在线观看| 你懂的视频在线观看| 91在线视频导航| 国产精品毛片在线| 日本午夜在线观看| 日韩的一区二区| 日本午夜免费一区二区| 农民人伦一区二区三区| 欧美激情综合五月色丁香小说| 成人av一区二区三区在线观看| 日本国产精品视频| 欧美.www| 日本性高潮视频| 精品盗摄一区二区三区| 外国电影一区二区| 黄色一级片在线看| 国产精品乱码久久久久久| 手机看片1024日韩| 国产专区欧美专区| 亚洲影院免费| 久久一级黄色片| 久久精品一区中文字幕| 久久99国内|