关键词
database 数据库
collection 数据库表/集合
document 数据记录行/文档
field 数据字段/域
index 索引
primary 主键,MongoDB将_id作为主键
MongoDB - 连接
mongod --fork --logpath://log_path --datapath://data_path
MongoDB - 操作
数据库操作:
use db_name #切换到da_name数据库,不存在则创建数据库
show dbs #查看所有数据库(没有数据的库除外)
db.dropDatabase() #删除当前数据库
db.collection.drop() #删除集合
db.collection.remove({}) #清空集合
文档(数据)操作:
db_name.insert({'name':'value'}) #插入数据
db.collection.insert(document) #插入文档
db.collection.update(
<query>, #查询条件
<update>, #update对象和操作符
{
upsert: <boolean>, #可选,如果记录不存在是否插入新对象,默认False
multi: <boolean>, #可选,默认只更新找到的第一条记录,默认为False
writeConcern: <document> #可选,抛出异常的级别
}
)
db.collection.save(
<document>, #用来替换的文档数据
{
writeConcern:<document> #可选,抛出异常的级别
}
)
db.collection.remove(
<query>, #删除条件
{
<justOne>, #可选,如果设置为True或1,则只删除1条
<writeConcern: <document> #可选,抛出异常的级别
}
)
db.collection.find() #非格式化显示所有数据
db.collection.find().pretty() #格式化显示所有数据
db.collection.findOne() #只查询一条数据
查询条件语句 query
db.collection.find({'by':'value'}).pretty() #by "= value"
db.collection.find({'likes': {$lt: 50}}).pretty() # likes < 50
db.collection.find({'likes': {$lte: 50}}).pretty() # likes <= 50
db.collection.find({'likes': {$gt: 50}}).pretty() # likes > 50
db.collection.find({'likes': {$gte: 50}}).pretty() # likes >= 50
db.collection.find({'likes': {$ne: 50}}).pretty() # likes != 50
操作符 $
db.collection.find({'by':'value'}, {'like': {$lt:50}}).pretty() #find可以传入多个参数
db.collection.find(
{
$or:[ # $or 操作符,满足后续任一条件则输出
{key1: value1}, {key2: value2}
]
}
).pretty()
db.col.find({"likes": {$gt:50}, $or: [{"by": "by1"},{"title": "title1"}]}).pretty()
# and 与 or 联用,组合查询
db.collection.find({'title' : {$type: 2}}) #type操作符,判断指定属性类型,较少用
db.collection.find().limit(num) #limit操作符,指定输出数据数量
db.collection.find().skip(num) #skip操作符,跳过指定数量后查询
db.collection.find().sort(1/-1) #sort排序,1为升序,-1降序
索引 index
添加索引可以有效的加快指定数据的查询速度
db.collection.ensureIndex({key: 1}) #创建索引
聚合 aggregate
主要用于处理数据,统计、求和、平均值等
db.collection.aggregate(AGGREGATE_OPERTION) # 基本格式
db.collection.aggregate(
[
{
$group : #给查询后的数据分组标识
{
_id : "$user", #格式化输出,user
num_tutorial : {$sum : 1} #计算总和
}
}
]
)
$sum: 计算综合
$avg: 计算平均值
$min: 获取集合的最小值
$max: 获取集合的最大值
$push: 在结果文档中插入值到一个数组
$addToSet: 在结果文档中插入值到一个数组中,不创建副本
$first: 根据排序获取第一个文档数据
$last: 根据排序获取最后一个文档数据
网友评论