MongoDB基本操作


基于文件存储的数据库,json格式存储数据
启动服务 :sudo service mongodb start
mongo 进入命令行界面


1.嵌入式关系:{..:[{..,..}]}
2.引用式关系:引用文档的_id字段来建立关系{..:[ObjectId("...")]}

use [database] 连接(创建)指定数据库
db: 查看当前数据库
show dbs:查看所有的数据库
db.dropDatabase() 销毁数据库

db.createCollection("users") 创建一个users集合
db.createCollection("users",{capped:1,autoIndexID:1,size:6142800,max:10000})
capped:布尔类型,为true则创建固定大小的集合
autoIndexID:布尔类型,在_id fields.s上自动创建索引,默认为false
size:指定参数的最大值
max:最大文档数

show collections 查看创建的集合
db.users.drop() 删除users集合

【插入】
db.users.insert() 向users集合插入数据,集合不存在时会自动创建。
save()操作相同
区别:当插入的数据的主键已存在时,insert会提示主键重复的错误,save会用新的数据覆盖旧数据(update操作)

【查询】
db.users.find() 查询users集合中保存的数据
db.users.find().pretty() 使查询输出的结果更美观
.limit(n) 读取n条记录
.skip(n) 跳过指定的n条记录后开始读取
.sort({key:1}) 1为升序,-1为降序
find中键值对参数作为 AND查询的条件
db.users.find({key1:value1,key2:value2})
$or 作为关键字进行OR查询
db.users.find({$or:[{key1:val1,key2:val2}]})
age:{$gt: 20} 表示大于20
$lt 小于
$lte小于等于
$gt 大于
$gte 大于等于
$ne 不等于

【更新】
db.users.update({key:val},{\$set: {key:val} })
第一个大括号表示查找条件,第二个大括号表示更新后的数据
默认的 update 函数只对一个文档更新,如果想作用所有文档,则需要加入 multi:true
db.users.update({key:val},{$set: {key:val} } , {multi:true})

【删除】
db.users.remove()

【type】$type:
type的值:

双精度型-1 字符串-2 对象-3 数组-4
二进制数据-5 对象ID-7
布尔类型-8  数据-9
空-10
正则表达式-11     JS代码-13          符号-14
有作用域的JS代码-15       32位整型数-16
时间戳-17      64位整型数-18
Min key-255   Max key-127

db.user.find({name:{$type:2}}) 查找name为字符串的数据

【索引】 对查询进行优化,只对创建了索引的某个键的查询进行优化
db.COLLECTION_NAME.ensureIndex({KEY:1|-1})
创建索引的缺点就是每次插入、更新和删除都会产生额外的开销。

【原子操作】配合update使用
$set 更新键值
$unset 用来删除一个键
$push
$pushAll
$pull 数组内删除一个值 {$pull:{field:_value}}

hint()指定索引进行查询
db.users.find({gender:"M"},{user_name:1,_id:0}).hint({gender:1,user_name:1})
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值