mongodb 的基本操作
mongodb 对比 mysql
databases == databases
collection == table
document == row(record(记录))
操作数据库
-
show dbs(看所有库)
use aaa;(使用库aaa(没有则创建))
db.createCollection(“创建集合名(表名)”)
show collections (查看所有文档)
db.stats() 查看状态
db.dropDatabase() 删除数据库
操作collection(集合)
db.createCollection("创建的集合名")
show.collections() 查看所有集合
db.user.renameCollection("new name") 改集合名
db.u1.drop() 删除集合u1
操作文档(相当row)
插入: db.集合名.insert({})
循环插入:
for(var i=1;i<=10;i++) {
db.集合名.insert({"key":"value"})
}
查询: db.集合名.find()
db.集合名.count()
删除: db.集合名.remove({})
更新: db.集合名.update({"条件字段":""},{$set:{"":""}})
条件查询
大于 $gt
小于 $lt
大于等于 $gte
小于等于 $lte
等于 $eq
不等于 $neq
正则 /条件/
查询cjh111 中含有q的 显示title 不显示_id
db.cjh111.find({"title":/q/},{"title":1,"_id":0})
db.cjh111.find({"rank":{$gt:10}},{"title":1,"_id":0})
相当于
select tltle from cjh111 where "rank">10
复杂查询
多条件
db.集合名.find({"":"","":""})
or
db.集合名.find({$or:[{},{}]})
in
db.集合名.find({"":{$in:[...]}})
查询存在字段a的行
db.集合名.find({"字段a":{$exists:true}})
抽出指定字段
显示字段a,b 不显示c,d
db.集合名.find({},{"a":1,"b":true,"c":false,"d",0})
所有都不写则全部显示
_id:0 隐藏id
#!! 其他的字段只写需要显示的字段(除了_id 其他字段设置为0会报错)
排序 sort()
db.集合名.find({},{"_id":0}).sort({"rank":1})
显示多少条数据(分页) limit()
db.集合名.find({},{"_id":0}).sort({"rank":1}).limit(5)
跳过 skip()
db.集合名.find({},{"_id":0}).sort({"rank":1}).skip(5).limit(5)
文档更新(update)
update(filter,update,options)
注意只更新一条数据(和sql不同):
db.集合名.update({"条件字段":""},{$set:{"":}})
必须加{$set:} 不加会清空除_id的所有字段
db.集合名.update({"条件字段":""},{"":})
更新所有
加{multi:true}
db.集合名.update({"条件字段":""},{$set:{"":}},{multi:true})
特殊函数
$inc: 递加
db.集合名.update({条件},{$inc:{"字段":加的值}})
$mul: 相乘
db.集合名.update({条件},{$mul:{"字段":乘的值}})
$rename: 改字段名
db.集合名.update({条件},{$rename:{"old name":"new name"}})
$set: 新增or修改
db.集合名.update({条件},{$set:{"新字段":值}})
$unset: 字段删除
db.集合名.update({条件},{$unset:{"字段":值}})
特殊更新
upsert: 有则更新。无则追加(不写$set:)
db.集合名.update({条件},{设置或修改的值},{upsert:true})
remove : 删除符合条件的行(不写条件则删除所有内容)
db.集合名.remove({条件}
索引
获取索引
db.集合名.getIndexes()
添加索引(升序1, 降序-1):
设为唯一索引 {unique:true}
createIndex({...},{...})
db.集合名.createIndex({索引字段:1},{unique:true})
删除索引
db.集合名.dropIndex({索引字段:1})
备份与恢复
备份 mongodump
恢复 mongorestore
mkdir 备份数据文件夹
cd 备份数据文件夹
mongodump -d 需要备份的库
mongorestore --drop 数据恢复