先附上两个网址
MongoDB CRUD 操作 — MongoDB Manual 3.4
mongoDB 概念解析
show dbs:命令可以显示所有数据的列表
use 数据库名:如果数据库不存在,则创建数据库,否则切换到指定数据库。
保留数据库名,可以直接访问这些有特殊作用的数据库。
- admin: 从权限的角度来看,这是"root"数据库。要是将一个用户添加到这个数据库,这个用户自动继承所有数据库的权限。一些特定的服务器端命令也只能从这个数据库运行,比如列出所有的数据库或者关闭服务器。
- local: 这个数据永远不会被复制,可以用来存储限于本地单台服务器的任意集合
- config: 当Mongo用于分片设置时,config数据库在内部使用,用于保存分片的相关信息。
dropDatabase() 删除数据库
先选择到要删除的数据库,再使用命令
- 集合操作
db.createCollection(name, options) 创建集合
例:db.createCollection("mycollection")
show collections 命令检查当前数据库中的集合
db.COLLECTION_NAME.drop() 删除集合
数据类型(常用)
String − 字符串是最常用的数据类型,MongoDB中的字符串必须是UTF-8编码。
Integer − 整数类型用于存储数值。整数可以是32位,也可以是64位,这取决于你的服务器。
Boolean − 布尔类型用于存储布尔值(true/ false)。
Double − 双精度类型用于存储浮点值。
Min/ Max keys − 此类型用于将值与最低和最高的BSON元素进行比较。
Arrays − 此类型用于将数组、列表或多个值存储到一个键中。
Timestamp − ctimestamp。时间戳,用于记录文档何时被修改或创建。
Object − 这种数据类型用于嵌入文档。
Null − 此类型用于存储Null值。
Symbol − 此数据类型与字符串用法相同; 然而,它通常用于某些使用特定符号的语言。
Date − 此数据类型用于以UNIX时间格式存储当前日期或时间。您可以通过创建date对象,并将日、月、年传入其中,来指定自己的日期时间。
Object ID − 此数据类型用于存储文档的ID。
Binary data − 这种数据类型用于存储二进制数据。
Code − 此数据类型用于将JavaScript代码存储到文档中。
Regular expression − 此数据类型用于存储正则表达式。
基本操作
插入(可用insert或save区别在于当遇到_id相同的情况下 save完成保存操作 insert则会报错 )
db.[collectionName].insert({}) 插入数据
例:db.sample.insert({name:"mongo"})
删除(remove)
db.[collectionName].remove({}) 删除数据
db.COLLECTION_NAME.remove(DELETION_CRITERIA, 1) 只删除一条
例:db.sample.remove({name:"c"})
更新
db.[collectionName].update({查询器},{修改器}) 用新的文档代替老的文档
db.[collectionName].update({查询器},{修改器},true) 存在即更新,否则插入该数据
默认情况下,MongoDB只更新一个文档。要更新多个文档,需要将参数“multi”设置为true(或updatemany)。
$set修改器用来指定一个键值对,如果存在键就进行修改不存在则进行添加
$inc修改器只是使用与数字类型,他可以为指定的键对应的数字类型的数值进行加减操作
$unset修改器就是删除指定的键值对
$push修改器
1.如果指定的键是数组增追加新的数值
2.如果指定的键不是数组则中断当前操作Cannot apply $push/$pushAll modifier to non-array
3.如果不存在指定的键则创建数组类型的键值对
4.此方法可添加重复数据
$pushAll修改器与$push类似可以批量添加数组数据
$addToSet修改器如果目标数组存在此项则不操作,不存在此项则加进去,即不添加重复数据。
$pop修改器从指定数组删除一个值(1删除最后一个数值,-1删除第一个数值)。
$pull修改器删除一个被指定的数值。
$pullAll修改器一次性删除多个指定的数值。
例:
db.qikegu.update
({'title':'MongoDB 优势'},
{$set:
{'title':'MongoDB 优点'}})
查询(find)
db.COLLECTION_NAME.find() 查询数据
db.mycollection.find().pretty() 输出格式化数据
$or后是数组需用[]
例:db.qikegu.find
({"likes":
{$gt:10
},
$or:
[{"by":
"qikegu.com"},
{"title":
"MongoDB 入门"}]}).pretty
()
Limit()、skip()和sort()
db.COLLECTION_NAME.find().limit(NUMBER) 限制返回数
db.COLLECTION_NAME.find().limit(NUMBER).skip(NUMBER) 跳过文档数
db.COLLECTION_NAME.find().sort({KEY:1}) 排序(-1降序 1升序)
聚合查询
管道(管道可以让某些命令的输出,作为另一个命令的输入)
$project — 用于从集合中选择某些字段。
$match — 这是一个过滤操作,过滤文档。
$group — 这是如上所述的实际聚合。
$sort — 对文档进行排序。
$skip – 结果偏移量,类似mysql中的offset。
$limit — 限定结果数量。
$unwind – 用于展开使用数组的文档