MongoDB快速学习

来源:互联网 发布:eclipse打印mysql表名 编辑:程序博客网 时间:2024/05/16 12:59

安装

官网下载地址:https://www.mongodb.org/downloads#production
环境:CentOS release 6.7

install mongodb

下载安装包:wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel62-3.2.6.tgztar -zxvf mongodb-linux-x86_64-rhel62-3.2.6.tgzmv mongodb-linux-x86_64-rhel62-3.2.6 /usr/local/mongodb #/usr/local/mongodb为安装路径export PATH=/usr/local/mongodb/bin/:$PATHmkdir -p /data/db   #/data/db 是 MongoDB 默认的启动的数据库路径(--dbpath)

install mongodb startup script

git clone https://github.com/syokenz/mongodb-init-scriptcd mongodb-init-script/cp mongod /etc/init.d/chmod +x /etc/init.d/mongod cp mongod.conf /etc/vim /etc/mongod.conf> dbpath = /data/db       # 数据存储目录

mongodb startup

后台启动:mongod -f /etc/mongod.confchkconfig --add mongodservice mongod start

常用命令

  • 停止mongodb服务

    >use admin
    >db.shutdownServer();
  • 查看Mongodb服务器的版本号和主机的操作系统:db.runCommand({"buildInfo":1})

    • 查看所有数据库:show dbs
    • 创建数据库:use dbname(PS:该数据库不会立刻被新建,要等到执行了insert之类的操作时,才会建立这个数据库)
    • 使用数据库:use dbname
    • 显示当前数据库:db
    • 删除数据库:dbname.dropDatabase()
    • 创建集合:db.createCollection(“collection_name”)(PS:当插入一些数据时,MongoDB会自动创建集合)
    • 查看集合:show collections
    • 删除集合:db.collection_name.drop()
    • 模糊查看文档:db.collection_name.find( { _id: { $regex: /^000000/i } } )
    • 插入文档:db.collection_name.insert({ title:'mongodb test', tel:110})或者定义一个变量:document,执行:db.collection_name.insert(document)
    • 删除文档:db.collection_name.remove(deletion_criteria,justOne)(PS:deletion criteria :(可选)删除的文档的条件;justOne : (可选)如果设置为true或1,则只删除一个文档)

    删除第一条找到的记录:db.collection_name.remove(deletion_criteria,1),如db.collection_name.remove({"title" : "mongodb_test"},1)

    删除所有数据:db.collection_name.remove({})

    • 更新文档:db.collection_name.update(selection_criteria,updated_data)

    更新单一文档:

    // $set 用来指定一个键的值。如果这个键不存在,则创建它db.collection_name.update({'title':'mongodb test'},{$set:{'title':'New MongoDB'}})db.collection_name.update({"_id":ObjectId("57523baf36dc6a16940abdb6")},{"$set":{"test":["test111","test222"]}})// $unset 从文档中移除指定的键db.collection_name.update({"_id":ObjectId("57523baf36dc6a16940abdb6")},{"$unset":{"test":1}})

    更新多个文档:db.collection_name.update({'title':'New MongoDB'},{$set:{'title':'New MongoDB Tutorial'}},{multi:true})

    内嵌文档添加数组:db.collection_name.update({"_id":ObjectId("5754e6d436dc6a25a447995c")},{$push:{"pic":{"name":"picname1","path":"/static/images/l1.jpg"}}})或者

db.collection_name.update({"_id":ObjectId("5754e6d436dc6a25a447995c")},{$addToSet:{"pic":{$each:[{"name":"1111","path":"2222"}]}}})

addToSet可以自己判断数组是否存在,和$each结合使用,可以同时在数组中插入多个数据

内嵌文档删除数组:`db.collection_name.update({"_id":ObjectId("5754e6d436dc6a25a447995c")},{$pop:{"pic":1}})`//删除尾部内嵌文档修改数组中的某一个值:`db.collection_name.update({"_id":ObjectId("5754e6d436dc6a25a447995c")},{$set:{"pic.0.name":"p6.jpg"}})`
  • 查询文档:db.collection_name.find(),如果你需要以易读的方式来读取数据,可以使用 pretty() 方法,db.collection_name.find().pretty(),还有一个findOne()方法,返回一个文档

    AND语法格式:db.collection_name.find({key1:value1, key2:value2}).pretty(),eg:db.collection_name.find({"title":"mongodb_test","tel":120})
    OR语法格式:db.collection_name.find({$or: [{key1: value1}, {key2:value2}]}).pretty(),eg:db.collection_name.find({$or:[{"tel":120},{"age":18}]})
    aggregate()方法:db.collection_name.aggregate(AGGREGATE_OPERATION),eg:db.collection_name.aggregate([{$group : {_id : "$title", num : {$sum : 1}}}]),相当于SQL中的:select title, count(*) from collection_name group by title

  • 查看DB版本:db.version()

链接:

  • 易百教程:http://www.yiibai.com/mongodb/
  • 菜鸟教程:http://www.runoob.com/mongodb/mongodb-tutorial.html
  • 官方文档:https://docs.mongodb.com/manual/reference/operator/update-array
    https://docs.mongodb.com/v2.4/reference/operator/query/regex/
1 0
原创粉丝点击