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即可

  • 相关阅读:
    Making Pimpl Easy
    OpenCV学习资源
    openCV基础学习(1)
    fl2440原始linux代码的启动日志
    《s3c2440+lan91c111 vxworks驱动调试》疑惑
    使用并行的方法计算斐波那契数列 (Fibonacci)
    [译] SolidWorks的发展历史(1994~2007)
    翻译介绍一点CAD发展的历史
    使用fopen的两点注意事项
    四元数(Quaternions)简介
  • 原文地址:https://www.cnblogs.com/hanmolabi/p/8018828.html
Copyright © 2011-2022 走看看