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/
- MongoDB快速学习
- mongodb 快速学习总结
- MongoDB快速学习
- 快速例子学习mongodb的mapreduce
- MongoDB学习 (四):创建、读取、更新、删除(CRUD)快速入门
- MongoDB学习 (四):创建、读取、更新、删除(CRUD)快速入门
- MongoDB学习 (四):创建、读取、更新、删除(CRUD)快速入门
- MongoDB学习 (四):创建、读取、更新、删除(CRUD)快速入门
- MongoDB学习(五)使用Java驱动程序3.3操作MongoDB快速入门
- mongoDB快速教程
- MongoDB快速指南
- MongoDB快速上手常用命令
- MongoDB快速入门
- mongoDB快速入门
- MongoDB快速启动方法
- MongoDB快速上手
- MongoDB快速入门笔记
- mongodb快速入门
- DFS--深度优先搜索--图的邻接表表示
- Linux 段错误详解
- linix修改主机名
- 文章标题
- MachineLearning—Logistic Regression(二)
- MongoDB快速学习
- 实对称矩阵的若干性质与详细证明
- 51nod1202(递推)
- 01_用if-else判断年份是否是闰年
- Python数学函数
- 苹果下 pecl安装mongo时报错:ld: library not found for -lgcc_s.10.5
- 【NOIP2015模拟11.2晚】Lala买面包
- IOS openGL es 学习一
- 采用PCM对信号进行编码,若采样频率为8000次/秒,量化级为256级,那么数据传输率要达到多少?