• MongoDB经常使用命令


            首先我们先安装这个数据库。你能够使用windows或者linux,但推荐使用的是linux,我使用的是ubuntu12.04.在下方的网址中共能够下载,基本都是64位的系统。

    假设位linux系统也能够使用命令行安装,我就是使用sudo apt-get install mongodb。

    https://www.mongodb.org/downloads

             MongoDB 由 databases 组成,databases 由 collections 组成,collections 由documents(相当于行)组成,而 documents 有 fields(相当于列)组成。


    help

            最開始应该介绍的就是help函数。学习一个东西最好的文档就是官方文档。以下我会给出几个指令的运行过程。最主要的形式就是db.help(),也能够在中间加上数据库的名称如db.douban.help()。

    > db.help()
    DB methods:
    	db.addUser(username, password[, readOnly=false])
    	db.auth(username, password)
    	db.cloneDatabase(fromhost)
    	db.commandHelp(name) returns the help for the command
    	db.copyDatabase(fromdb, todb, fromhost)
    	db.createCollection(name, { size : ..., capped : ..., max : ... } )
    	db.currentOp() displays the current operation in the db
    	db.dropDatabase()
    	db.eval(func, args) run code server-side
    	db.getCollection(cname) same as db['cname'] or db.cname
    	db.getCollectionNames()
    	db.getLastError() - just returns the err msg string
    	db.getLastErrorObj() - return full status object
    	db.getMongo() get the server connection object
    	db.getMongo().setSlaveOk() allow this connection to read from the nonmaster member of a replica pair
    	db.getName()
    	db.getPrevError()
    	db.getProfilingLevel() - deprecated
    	db.getProfilingStatus() - returns if profiling is on and slow threshold 
    	db.getReplicationInfo()
    	db.getSiblingDB(name) get the db at the same server as this one
    	db.isMaster() check replica primary status
    	db.killOp(opid) kills the current operation in the db
    	db.listCommands() lists all the db commands
    	db.logout()
    	db.printCollectionStats()
    	db.printReplicationInfo()
    	db.printSlaveReplicationInfo()
    	db.printShardingStatus()
    	db.removeUser(username)
    	db.repairDatabase()
    	db.resetError()
    	db.runCommand(cmdObj) run a database command.  if cmdObj is a string, turns it into { cmdObj : 1 }
    	db.serverStatus()
    	db.setProfilingLevel(level,<slowms>) 0=off 1=slow 2=all
    	db.shutdownServer()
    	db.stats()
    	db.version() current version of the server
    	db.getMongo().setSlaveOk() allow queries on a replication slave server
    	db.fsyncLock() flush data to disk and lock server for backups
    	db.fsyncUnock() unlocks server following a db.fsyncLock()

    > db.douban.help()
    DBCollection help
    	db.douban.find().help() - show DBCursor help
    	db.douban.count()
    	db.douban.dataSize()
    	db.douban.distinct( key ) - eg. db.douban.distinct( 'x' )
    	db.douban.drop() drop the collection
    	db.douban.dropIndex(name)
    	db.douban.dropIndexes()
    	db.douban.ensureIndex(keypattern[,options]) - options is an object with these possible fields: name, unique, dropDups
    	db.douban.reIndex()
    	db.douban.find([query],[fields]) - query is an optional query filter. fields is optional set of fields to return.
    	                                              e.g. db.douban.find( {x:77} , {name:1, x:1} )
    	db.douban.find(...).count()
    	db.douban.find(...).limit(n)
    	db.douban.find(...).skip(n)
    	db.douban.find(...).sort(...)
    	db.douban.findOne([query])
    	db.douban.findAndModify( { update : ... , remove : bool [, query: {}, sort: {}, 'new': false] } )
    	db.douban.getDB() get DB object associated with collection
    	db.douban.getIndexes()
    	db.douban.group( { key : ..., initial: ..., reduce : ...[, cond: ...] } )
    	db.douban.mapReduce( mapFunction , reduceFunction , <optional params> )
    	db.douban.remove(query)
    	db.douban.renameCollection( newName , <dropTarget> ) renames the collection.
    	db.douban.runCommand( name , <options> ) runs a db command with the given name where the first param is the collection name
    	db.douban.save(obj)
    	db.douban.stats()
    	db.douban.storageSize() - includes free space allocated to this collection
    	db.douban.totalIndexSize() - size in bytes of all the indexes
    	db.douban.totalSize() - storage allocated for all data and indexes
    	db.douban.update(query, object[, upsert_bool, multi_bool])
    	db.douban.validate( <full> ) - SLOW
    	db.douban.getShardVersion() - only for use with sharding
    	db.douban.getShardDistribution() - prints statistics about data distribution in the cluster
    


    use

           use deng能够用来创建 deng,不用操心 deng 不会创建,当创建第一个 collection 时,deng会自己主动创建。


    insert

           db.unicorns.insert({name: 'demo', sex: 'm', weight: 70}),插入一个数据 collection 为 unicorns。使 用 db.getCollectionNames() , 会 得 到 unicorns 和 system.indexes 。system.indexes 对每一个 DB 都会有,用于记录 index。

    能够通过find函数查看是否插入成功。


    find

           db.unicorns.find()会看到 document。就相当于mysql中的select * from table; 查看集合中的全部内容。


    使用查询        
    db.unicorns.find({name: 'Dunx'})
     
    其它说明:        
    $lt, $lte, $gt, $gte and $ne 分别表示小于、小于等于、大于、大于等于、不等于
    db.unicorns.find({gender: {$ne: 'f'}, weight: {$gte: 701}})
    
    $exists 用于表示 field 是否存在
    db.unicorns.find({vampires: {$exists: false}})
    
    or 和 and
    db.unicorns.find({gender: 'f', $or: [{loves: 'apple'}, {loves: 'orange'}, {weight: {$lt: 500}}]})


    db.unicorns.find(null, {name: 1}) 

    仅仅返回 name 这个 field,详细例如以下所看到的:

    > db.unicorns.find(null, {name: 1})
    { "_id" : ObjectId("4da6f22da8d5cd3b72081cf7"), "name" : "Aurora" }
    { "_id" : ObjectId("4da6f22da8d5cd3b72081cf6"), "name" : "Horny" }
    { "_id" : ObjectId("4da6f22da8d5cd3b72081cf8"), "name" : "Unicrom" }
    { "_id" : ObjectId("4da6f22da8d5cd3b72081cf9"), "name" : "Roooooodles" }
    { "_id" : ObjectId("4da6f22da8d5cd3b72081cfa"), "name" : "Solnara" }
    { "_id" : ObjectId("4da6f22da8d5cd3b72081cfb"), "name" : "Ayna" }
    { "_id" : ObjectId("4da6f22da8d5cd3b72081cfc"), "name" : "Kenny" }
    { "_id" : ObjectId("4da6f22da8d5cd3b72081cfd"), "name" : "Raleigh" }
    { "_id" : ObjectId("4da6f22da8d5cd3b72081cfe"), "name" : "Leia" }
    { "_id" : ObjectId("4da6f22da8d5cd3b72081cff"), "name" : "Pilot" }
    { "_id" : ObjectId("4da6f22da8d5cd3b72081d00"), "name" : "Nimue" }
    { "_id" : ObjectId("4da6f231a8d5cd3b72081d01"), "name" : "Dunx" }
    > db.unicorns.find(null, {name: 1,_id:0})
    { "name" : "Aurora" }
    { "name" : "Horny" }
    { "name" : "Unicrom" }
    { "name" : "Roooooodles" }
    { "name" : "Solnara" }
    { "name" : "Ayna" }
    { "name" : "Kenny" }
    { "name" : "Raleigh" }
    { "name" : "Leia" }
    { "name" : "Pilot" }
    { "name" : "Nimue" }
    { "name" : "Dunx" }
    

    sort

    db.unicorns.find().sort({weight: -1})
    db.unicorns.find().sort({name: 1, vampires: -1})
    #1 表示升序,-1 表示降序
    
    db.unicorns.find().sort({weight: -1}).limit(2).skip(1)
    #得到第二个和第三个,limit 规定查询个数,skip 规定忽略几个。
    

    
    count
    db.unicorns.count({vampires: {$gt: 50}})
    #or
    db.unicorns.find({vampires: {$gt: 50}}).count()


    remove

    db.unicorns.remove()
    如以下所看到的。

    > db.unicorns.remove() > db.unicorns.find() >


    update

    db.unicorns.update({name: 'jingdong'}, {weight: 590})

    注意:此语句运行后,先查询 name 是'jingdong'的全部数据,然后将 name是'jingdong'的整个 document 都替换为{weight: 590}。

    即 db.unicorns.insert({name: 'jingdong', dob: new Date(1979, 7, 18, 18, 44),loves:['apple'], weight: 575, gender: 'm', vampires: 99});整个替换为{weight: 590},最后仅仅剩一个{weight: 590}



    运行$set,不会替换原有数据,因此正确的更新方式例如以下:

    db.unicorns.update({name: 'jingdong'}, {$set: {weight: 590}})

    db.unicorns.update({name: 'Pilot'}, {$inc: {<span style="font-size:14px;">weight: 500</span>}})
    $inc 添加或降低数字 假设原来为500之后会变为1000,由于500+500 = 1000
    
    db.unicorns.update({name: 'Aurora'}, {$push: {loves: 'sugar'}})
    $push 添加数组元素
    $pop 降低数组元素
    

    若存在则更新,否则加入
    db.hits.update({page: 'unicorns'}, {$inc: {hits: 1}}, true);
    db.hits.find();
    使用第三个參数设置是否 true(upset)
    ,默认是 false
    

    #批量更新
    db.unicorns.update({}, {$set: {vaccinated: true }});
    db.unicorns.find({vaccinated: true});
    不会将全部的数据的 vaccinated 都更新为 true
    若将全部的数据的 vaccinated 都更新为 true,则例如以下:
    db.unicorns.update({}, {$set: {vaccinated: true }}, false, true);
    db.unicorns.find({vaccinated: true});
    


    ensureIndex

    创建索引的方式
    db.unicorns.ensureIndex({name: 1})
    删除索引的方式
    db.unicorns.dropIndex({name: 1})
    创建独立索引
    db.unicorns.ensureIndex({name: 1}, {unique: true})
    创建联合索引
    db.unicorns.dropIndex({name: 1, vampires: -1})


    使用 web 获得 mongoDB 的信息

    使用 http://localhost:28017/ 获得 MongoDB 的信息。


    数据备份和恢复

    使用 mongodump备份数据库
    mongodump
    使用 mongorestore恢复数据库
    mongorestore










































           

  • 相关阅读:
    变分自编码器(Variational Autoencoder, VAE)通俗教程
    神经网络图灵机(Neural Turing Machines, NTM)
    【Java设计模式】单例模式
    SupportV7包中 SwipeRefreshLayout 修改下拉控件的距离
    eclipse项目导入androidstudio
    LiveWriter Test
    【Android学习】XML文本的三种解析方式(通过搭建本地的Web项目提供XML文件)
    【百度地图学习-一】初始化以及TextOverlay
    【Android学习】四种布局方式
    【Android学习】数据传递三种方式
  • 原文地址:https://www.cnblogs.com/lxjshuju/p/6881895.html
Copyright © 2020-2023  润新知