mongodb简单操作
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mongodb简单操作相关的知识,希望对你有一定的参考价值。
mongodb
Ubuntu
sudo apt-get install mongodb
Mac
brew install mongodb
启动
直接启动
sudo mongod
注意事项:启动失败
数据库不存在 创建文件夹
/data/db
权限不够,添加
sudo
启动参数说明
--port
进行设置默认端口--dbpath
设置数据库路径--config
通过指定配置文件去启动mongodb
,再配置文件中可以配置默认端口、数据库路径等等
关闭
直接kill关闭(非常不推荐使用,最好不要使用)
sudo kill -9 进程号
通过进入数据库中直接关闭
use admindb.shutdownServer()
数据库
显示数据库列表
show databases// 或show dbs
显示当前数据库
db
进入数据库
use 数据库名
创建数据库
只要插入数据就自动创建数据库
删除数据库
// 前提use db// 删除数据库db.dropDatabase()
集合(表)操作
创建集合
默认情况下只要插入数据自动创建集合
手动创建集合
db.createCollection(集合名称)
显示集合列表
show collections
删除集合
db.集合名.drop()
数据操作
创建
// 插入数据,json串db.my_coll.insert({ "a":"x", "b":{ "q":"a", "p":"b" }, "c":[1,2,3] })// 批量插入data = [ {"test01":"val1"}, {"test02":"val2"}, {"a":{"p":"q"},"b":123} ] db.my_coll.insertMany(data)
更新
默认整体更新,如果需要局部更新需要使用
$set
,默认是仅更新一次,如果需要批量更新需要添加第三个参数multi
// 默认更新是完整更新,也就是替换db.stu.update( // 更新条件 { "name":"郭靖" }, // 更新内容 { "age":88 } )// 局部更新db.stu.update( // 更新条件 { "name":"黄蓉" }, // 更新内容 { // 局部更新内容 $set:{ "age":80 } } )// 默认情况下是只更新一次,如果需要批量更新,添加第三个参数,multi 设置为True 就是批量更新db.stu.update( // 更新条件 { "age":{$gt:20} }, // 更新内容 { // 局部更新内容 $set:{ "age":36 } }, // 更新方式 { multi:true } )
删除
// 删除db.stu.remove( // 删除条件 { "age":36 }, // 如果想仅仅删一条 { justOne:true } )// 清空数据db.stu.remove({})
保存
// 通过 _id 查询数据如果存在就更新,如果不存在就插入db.my_test.save({ "_id":1, "a":"b"})
查询
简单查询
db.集合名.find()
复杂查询
// 默认查询是 并db.stu.find( // 查询条件 { "hometown":"蒙古", "age":20 } )// 比较运算符($gt,$gte,$lt,$lte,$ne)db.stu.find( // 查询条件 { "age":{$gt:20} } )// 逻辑运算符 $ordb.stu.find( // 查询条件 { "age":{$gt:20}, $or:[ {"hometown":"蒙古"}, {"gender":false} ] } )// 范围运算符 $in,$nin// 表示在列表中的db.stu.find( // 查询条件 { "age":{$nin:[18,45]} } )// 正则表达式db.stu.find( // 查询条件 { "name":/^黄/ } ) db.stu.find( // 查询条件 { "name":{$regex:"^黄"} } )// 自定义查询db.stu.find( // 查询条件 { $where: function(){ // 返回 true 表示符合条件 // this 表示当前记录 return this.age >= 18 && this.gender == false } } )
高级查询
// limit 和 skip// 注意: 先 skip 再 limit 不管谁先谁后db.stu.find().limit(2) db.stu.find().skip(1) db.stu.find().limit(2).skip(1) db.stu.find().skip(1).limit(2)// 投影 是否显示数据// 在不同的数据库版本中 方式不同db.stu.find( // 查询条件 {}, // 投影方式,显示数据字段 { "name":1 } )// 排序// 参数1为升序排列// 参数-1为降序排列db.stu.find().sort( { age:-1, hometown:1 } )// 统计个数db.stu.find().count()// 去除重复// 第一个参数是去重的字段// 第二个是查询条件db.stu.distinct('hometown',{age:{$gt:18}})
以上是关于mongodb简单操作的主要内容,如果未能解决你的问题,请参考以下文章