Mongodb
数据库命令
- 查看所有数据库: show dbs
- 切换数据库: use db_name use不存在的数据库时 会自动创建
- 查看当前数据库: db
- 删除当前数据库: db.dropDatabase()
集合命令(对应关系型数据库的表)
- 查看集合: show collections
- 删除集合: db.集合名称.drop()
- 手动创建集合: db.createCollection(name,option)
数据类型
- Object ID: 文档ID
- String:字符串 UTF-8
- Boolean: true/false
- Integer
- Double
- Arrays
- Object: 嵌入式的文档
- Null
- Timestamp
- Date
插入
db.collection_name.insert(document)
use test_db
db.test_collection.insert({name:"xzr",age:100})
db.test_collection.find()
保存
- 如果文档的_id已经存在则修改 不存在则添加
db.collection_name.save(document)
更新
db.collection_name.update(
query: 查询条件
update: 更新操作符
mulit: 可选,默认false,只更新找到的第一条数据;true,满足条件的全部更新。
# 替换 造成缺失age字段
db.test_collection.update({name:"xzr"},{name:"xxzzrr"})
# 更新
db.test_collection.update({name:"xzr"},{$set:{name:"xxzzrr"}})
删除
db.collection_name.remove(
查询
db.collection_name.find(
db.collection_name.findOne(
db.collection_name.find(
比较运算符
- 等于: 默认等于操作 无运算符
- 小于: $lt (less than)
- 小于等于: $lte (less than equal)
- 大于: $gte (greater than)
- 大于等于: $gte (greater than equal)
- 不等于: $ne
db.test_collection.find({name:{$ne:"xzr"}})
范围运算符
- $in
- $nin
db.test_collection.find({age:{$in:[10,20,30]}})
逻辑运算符
- and: 在json中写多个条件即可
- or: $or
# 查询年龄大于100 是否富有为true
db.test_collection.find({age:{$gte:100},money:true})
# 大于100 或 是否富有为true
db.test_collection.find({$or:[{age:{$gte:100}},{money:true}]})
# 大于100或富有 且名字为xzr
db.test_collection.find({$or:[{age:{$gte:100}},{money:true}],name:"xzr"})
正则表达式
使用 /表达式内容/ 或者 $regex 编写正则表达式
切片
- limit()
- skip()
投影
选择返回结果的字段
排序
- sort()
计数
- count()
消除重复
- distinct
... ...
聚合命令
db.collection_name.aggregate({管道:{表达式}})
- $group
- $match
- $project: 修改输入文档的结构,如重命名/增加/删除字段/创建计算结果
- $sort
- $limit
- $skip
- $unwind: 将数组类型的字段进行拆分
表达式
- $sum: $sum:1 以一倍计数
- $avg
- $min
- $max
- $push: 结果文档中插入值到一个数组
- $first
- $last
索引创建
db.collection_name.ensureIndex({属性:1}) 1表示升续