zoukankan      html  css  js  c++  java
  • MongoDB的连接、创库、删库、插入文档、更新文档

    基本操作命令:http://blog.csdn.net/shirdrn/article/details/7105539

    O、特殊操作符

    $gt         大于(greater than)

    $lt           小于(less than)

    $gte        大于等于(greater than equal)

    $lte          小于等于(less than equal)

    $ne          不等于(no equal)

    $eq          等于(equal)

    $or           或

    $type        基于BSON类型来检索集合中匹配的数据类型,并返回结果

    pretty()     格式化输出

    一、连接

    1.启动MongoDB服务。在bin目录下执行mongod即可。

    2.启动MongoDB  shell。在cmd中执行mongo即可。

    mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]

    • mongodb:// 这是固定的格式,必须要指定。

    • username:password@ 可选项,如果设置,在连接数据库服务器之后,驱动都会尝试登陆这个数据库

    • host1 必须的指定至少一个host, host1 是这个URI唯一要填写的。它指定了要连接服务器的地址。如果要连接复制集,请指定多个主机地址。

    • portX 可选的指定端口,如果不填,默认为27017

    • /database 如果指定username:password@,连接并验证登陆指定数据库。若不指定,默认打开 test 数据库。

    • ?options 是连接选项。如果不使用/database,则前面需要加上/。所有连接选项都是键值对name=value,键值对之间通过&或;(分号)隔开

    默认连接的是“test”数据库

    切换数据库:use + 数据库名     

    显示连接的数据库名:db

    显示数据库名及容量:show dbs

    添加数据库用户:

    db.createUser({user:"xyj",pwd:"123456",roles:[{role:"root",db:"admin"}]})

    验证用户身份:

    db.auth('xyj','123456')      返回1则正确

    二、创库

    use + 数据库名

    如果数据库不存在,则创建数据库,否则切换到指定数据库。

    新创建的库在插入数据后,可以用show dbs查看到

    三、删库

    删除当前数据库:db.dropDatabase()

    删除集合:db.collection.drop()

    四、插入文档

    所有存储在集合中的数据都是BSON格式,BSON是一种类json的一种二进制形式的存储格式。

    db.COLLECTION_NAME.insert(document)

    db.COLLECTION_NAME.insert([document,document])

    五、更新文档

    使用update()和save()方法来更新集合中的文档。

    update()方法用于更新已存在的文档。  db.collection.update(<query>,<update>,{false,false}),第一个true/false表示找不到时是否新增,第二个true/false表示是否只更新第一条。

    save()方法通过传入的文档来替换已有文档。id识别。

    六、删除文档

    remove()函数是用来移除集合中的数据。在remove()前先执行find()来判断执行的条件是否正确,是比较好的习惯。

    db.collections.remove(<query>,{true,}).            条件;是否只删除一个文档

    remove()方法已经过时了,现在官方推荐使用deleteOne()和deleteMany()方法。

    db.collections.deleteOne({status:"D"})

    db.collections.deleteMany({})

    七、查询文档

    mongodb使用find()方法来进行文档的查询。

    db.collections.find({query },projection)             query查询条件,多条件可以通过逗号隔开

    projection指定返回的键

    如 

    db.collection.find(query, {title: 1, by: 1}) // inclusion模式 指定返回的键,不返回其他键
    db.collection.find(query, {title: 0, by: 0}) // exclusion模式 指定不返回的键,返回其他键

    find().limit(int)指定从mongodb中读取的记录条数

    find().skip(int)跳过指定数量的数据

    find().sort({key:1})按照key对数据进行排序,1为升序,-1为降序

    三者的执行顺序为:  sort()  skip()  limit()

    八、索引

    索引是特殊的数据结构,存储于一个易于遍历读取的数据集合中,索引是对数据库表中一列或多列的值进行排序的一种结构。

    mongodb使用ensureIndex()方法来创建索引

    db.collections.ensureIndex({key:1})    key为要创建的索引字段,1为按升序创建索引,-1为降序

    mongodb使用dropIndexes()方法来删除索引

    mongodb使用getIndexes()方法来查看索引

    九、聚合   http://blog.csdn.net/vbirdbest/article/details/77102999                                                                   https://www.cnblogs.com/liruihuan/p/6686570.html

    聚合(aggregate)主要用于处理数据(平均值,求和),并返回计算后的数据结果。

    mongodb中聚合的方法使用aggregate()

    $match 筛选条件,过滤掉不满足条件的文档,可以使用常规的查询操作符,如gt,lt,$in等

    db.collections.aggregate({$match:{"age":{$gt:20}}}).pretty()

    $projct投射,用于包含、排除字段:   0不显示,1显示

    db.collections.aggregate({$project:{_id:0,name:1,birth:"$age"}}).pretty()

    $group分组,将集合中的文档进行分组,可用于统计结果

    db.collections.aggregate({$group:{_id:"$name",total:{$sum:1}}}).pretty()

    聚合的相关函数可以同时使用,用逗号隔开即可。

    十、备份(mongodump)与恢复(mongorestore)

    cmd   cd到bin目录下。   C:Program FilesMongoDBServer3.4in

    端口号?  

    备份:       mongodump -d runoob -o c:datadump

    还原:       mongorestore  -h 127.0.0.1:27017  -d runoob --drop  C:datadump unoob

    十一、容量

    ???

    十二、JSON

    JSON: JavaScript Object Notation(JavaScript对象表示法)

    JSON是存储和交换文本信息的语法。类似XML

    JSON是轻量级的文本数据交换格式

    JSON比XML更小、更快,更易解析

    JSON独立于语言和平台。

    JSON纯文本,具有层级结构

    十三、BSON

    BSON简称二进制的JSON,是JSON的二进制序列化编码格式,像JSON一样,BSON支持文档数组,支持二进制压缩格式。

    特性:

    1 轻量级  保持空间的开销最低,重要的是,任何数据表示格式,尤其是当在网络上使用

    2 可遍历  BSON是被设计成更加容易的遍历访问。

    3 高效      从BSON编码和解码数据,可以非常迅速地在大多数语言中。

    目前只要用于MongoDB中,是MongoDB的数据存储格式。基于JSON

    十四、上传下载pdf文件(MongoDB与GridFS)

    MongoDB可以直接作为一个存储小文件(16M)的分布式文件系统,主要依赖于以下三点:

    1、MongoDB可以直接存储二进制数据

    2、MongoDB可以部署成分片集群,实现海量数据存储、读写分离

    集群中的片可以部署成复制集,保证数据的可靠性

     对文件的存储方式有两种:一种是像存储普通数据那样,将文件转化为二进制数据存入mongodb,另一种使用gridfs。

    博文:https://www.cnblogs.com/bonelee/p/6513657.html     http://www.cnblogs.com/lipan/archive/2011/03/21/1989409.html

    具体第一种方法有待研究。

    GridFS的使用场景

    document的大小超过16M是使用GridFS的条件之一,另外:

    ①如果你的文件系统对每个目录下文件的个数有限制(或者太多,将会影响文件的打开速度)

    ②如果你的文件数据,有分数据中心镜像保存(大数据情况,可用性保证)

    ③如果你希望访问一个超大的文件,而不希望将它全部加入内存,而是有“range access”的情况,即分段读取,那么GridFS天生就具备这种能力,你可以随意访问任意片段。

    对于一个大文件,如果你希望原子性的更新它的全部内容,那么GridFS将不适合;比如同时更新一个文件的多个chunk,因为mongodb本身没有事务机制。

    使用mongofiles.exe进程,可实现对文件的上传。

    命令行cd到bin目录下,输入

    上传文件mongofiles.exe -h 192.168.130.129 --port  27017 -d PDFS --local D:AAA.pdf  put mongodb_introduction.pdf      

    下载文件mongofiles.exe -h 192.168.130.129 --port  27017 -d PDFS --local D:BBB.pdf  get mongodb_introduction.pdf

    查询文件mongofiles.exe -h 192.168.130.129 --port  27017 -d PDFS search algorithm_introduction.pdf 

    删除文件mongofiles.exe -h 192.168.130.129 --port  27017 -d PDFS delete algorithm_introduction.pdf

    GridFS的分布式文件系统,GridFS是基于MongoDB的数据库、集合、文档对象。当上传一个大文件到GridFS系统时,MongoDB自动将文件分割成256K的小块。然后将小块插入到数据库默认的集合fs.chunks中,同时将整个大文件的元数据信息插入到数据库的集合fs.files中。

    总结:对于在MongoDB中存储大于16M的文件,我们应该用GridFS系统,它的性能要比操作系统的文件系统高效;对于小于16M的文件直接利用MongoDB的文档对象进行存储来的更高效,可以用二进制数据类型存储图片、视频等文件。

    十五、本地windows远程连接虚拟机的mongodb主机

    环境:本地windows7 64位,开了虚拟机vm。

    目的:虚拟机启动mongodb,作为服务器,本地windows进行连接

    连接前的测试:分别在本地和虚拟机的cmd中输入ipconfig,得到“无线局域网适配器 无线网络连接”下的IPV4地址。我的本地为192.168.1.102,虚拟机为192.168.130.129。互相ping ip地址,ping就可以进行下一步连接。

    连接:首先虚拟机上启动mmongodb,注意bind_ip=192.168.130.129,默认为127.0.0.1只能进行本地连接。

               “mongod --config "c:....mongod.cfg"  ”   其中文件mongod.cfg中为:

            logpath= c:datalogmongod.log

            dbpath= c:datadb
            storageEngine= mmapv1
            bind_ip= 192.168.130.129

       然后在本地windows中cmd中输入  mongo 192.168.130.129:27017    。 连接成功后,就可以随意查询了。

               想本地下载服务器上的GridFS文件,需要cd到bin目录,然后输入:

                              mongofiles.exe -h 192.168.130.129 --port  27017 -d PDFS --local D:BBB.pdf  get mongodb_introduction.pdf即可

  • 相关阅读:
    convert image to base64 and post to RESTful wcf
    在android webview实现截屏的手动tounchmove裁剪图片
    How to use jquery ajax and android request security RESTful WCF
    using swfUpload in asp.net mvc
    using HttpClient and sending json data to RESTful server in adroind
    ODP.NET数据访问
    android image watermark
    解决国内不能访问github的问题
    idapro权威指南第二版阅读笔记第九章 交叉引用和绘图功能
    idapro权威指南第二版阅读笔记第二章 逆向和反汇编工具
  • 原文地址:https://www.cnblogs.com/hanmolabi/p/8018828.html
Copyright © 2011-2022 走看看