MongoDB

MongoDB是最像关系型数据库的非关系型数据库,支持bson格式:
{
title:‘today is rainning’,
price: ‘19’
}
类似一个文档形式。

MongoDB是面向集合的
mysql-表-记录 对应 mongodb-集合-文档

常用命令:
show dbs 查看所有数据库(mongodb不显示空db)
db 当前数据库
use db1 连接到db1数据库 ,或者创建db1
db.dropDatabase() 删除当前数据库
db.createCollection(“a1”) 创建a1 集合(相当于在mysql创建表)
db.a1.drop() 删除a1集合
show collections 查看集合
db.adam.insert([记录])
db.adam.save([记录])
insert和save都会在adam集合不存在时候自动创建adam集合,insert不能插入已经存在的记录(以主键为准),save则会更新原记录
db.adam.remove(条件)
db.adam.find().pretty() 查找adam中所有文档,pretty可以输出更加美观
查找姓名为eve年龄为19的文档:
db.adam.find([{“name”:“eve”,“age”:“19”}]).pretty()
使用or 查询:
db.adam.find({$or:[{a:1},{b:2}]})查找 a为1 或者b为2 的文档。
find().limit(1).skip(1) .sort({time:1})表示查找到的文档跳过第一条,仅显示一条,按时间升序排列
建立索引:db.adam.ensureIndex({id:0,name:1}) 以id降序,名字升序的方式建立索引

聚合语法:db.adam.aggregate({ m a t c h : n a m e : a d a m , l i m i t : 10 , match:{name:adam},{limit:10}, match:name:adam,limit:10,group:{_id:$age}})
$gt $lt $gte $lte 分别表示大于,小于,大于等于,小于等于

示例:
	db.adam.find(age:{$lt:100},$or:[{a:1},{b:2}]) 表示查询age小于100的条件下,a 为 1 或者 b 为2 的文档
mongodb的模糊查询用正则表达式实现,db.adam.find({name:/^沈/}) 查找姓沈的人的文档
db.adam.update({name:"adam"},{$set:{score:100}},{multi:true})   把adam的score 改成100分,multi表示把所有adam的成绩都改成100

文档的逻辑联系:1、可以直接嵌套,内层用[ ]包裹
2、可以引用文档的id字段[ ObjectId(“52ffc4a385d64s52”) ]
嵌套之后要用.来调用: db.user.find({address.city.number:1}) 查找地址项下的城市项下的number为1 的文档
dbname.system.sources\users\profile 可以查看服务器信息\ 用户 \ 数据库概要

原子操作:set \ unset\ inc(要求数字类型)\ push(要求数组类型) \ pushALL\ pull(数组内删除一个等于value的值)\rename

聚合 以及 高级索引待补充

你可能感兴趣的:(后端,mongodb,后端,数据库)