1 连接
标准 URI 连接语法:
mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]
- mongodb:// 固定格式
- username:password@ 可选项,如果设置,在连接数据库服务器之后,驱动都会尝试登陆这个数据库
- host1 必须的指定至少一个host, host1 是这个URI唯一要填写的。它指定了要连接服务器的地址。如果要连接复制集,请指定多个主机地址。
- portX 可选的指定端口,如果不填,默认为27017
- /database 如果指定username:password@,连接并验证登陆指定数据库。若不指定,默认打开 test 数据库。
- ?options 是连接选项。如果不使用/database,则前面需要加上/。所有连接选项都是键值对name=value,键值对之间通过&或;隔开
2 数据库
- use DATABASE_NAME:创建或切换数据库
- db.dropDatabase():删除当前数据库
3 集合
- db.createCollection(name, options):创建集合
- db.COLLECTION_NAME.drop():删除集合
4 文档
- insert(document):插入文档
- save(document):通过传入的文档来替换已有文档
- update():更新文档
db.collection.update(
<query>,//查询条件(where)
<update>,//update的对象和一些更新的操作符(set)
{//可选
upsert: <boolean>,//如果update对象不存在,是否插入objNew。默认false
multi: <boolean>,//多条记录全部更新。默认false
writeConcern: <document>//抛出异常的级别
}
)
- delete():删除文档
5 文档查询
db.collection.find(query, projection):查询文档
- query :可选,使用查询操作符指定查询条件
- AND:逗号隔开
- OR :关键字 $or
- (>) 大于 - $gt
- (<) 小于 - $lt
- (>=) 大于等于 - $gte
- (<= ) 小于等于 - $lte
- $type:数据类型,如Double为1
- projection :可选,使用投影操作符指定返回的键
- .pretty():易读
- .limit(NUMBER):限定数量
- .skip(NUMBER):跳过指定数量的数据
- .sort(KEY:1):排序, 1 升序,-1降序
6 文档索引
db.collection.createIndex(keys, options):Key 为索引字段,1 升序,-1降序
db.col.createIndex({"title":1})
db.col.createIndex({"title":1,"description":-1})
7 文档聚合
db.collection.aggregate(AGGREGATE_OPERATION)
- $project:修改输入文档的结构。可以用来重命名、增加或删除域,也可以用于创建计算结果以及嵌套文档。
- $match:用于过滤数据,只输出符合条件的文档。$match使用MongoDB的标准查询操作。
- $limit:用来限制MongoDB聚合管道返回的文档数。
- $skip:在聚合管道中跳过指定数量的文档,并返回余下的文档。
- $unwind:将文档中的某一个数组类型字段拆分成多条,每条包含数组中的一个值。
- $group:将集合中的文档分组,可用于统计结果。
- $sort:将输入文档排序后输出。
- $geoNear:输出接近某一地理位置的有序文档。