官网:https://www.mongodb.com/try/download/community
# 命令行加参数
mongod --dbpath=..\data\db
# 命令行加配置文件,需要先编写配置文件
mongod -f ..\conf\mongod.conf
# 默认链接本地27017端口
mongo
# 指定连接
mongo --host=127.0.0.1 --port=27017
# 查看所有数据库
show dbs 或者 show database
# 创建使用数据库,存在使用不存在创建使用
use dbName
# 当前数据
db
# 删除数据库
db.dropDatabse()
# 集合创建
db.createCollection("set1")
# 集合查看
show collections
# 删除集合
db.集合名称.drop()
# 单文档插入(json格式插入),如果集合不存在会自动创建
db.set1.insert({"id":1,"name":"zhangsan","age":23})
# 多文档插入
db.set1.insertMany([{"id":1,"name":"zhangsan","age":23},{"id":2,"name":"lisi","age":24}])
# 查询
db.集合名称.find()
# 查询一条数据
db.集合名称.findOne()
# 根据条件查询(json格式指定条件,如{"id":1})
db.集合名称.find("条件")
# 多条件(与或)
db.集合名称.find({$and[{"条件集合"}]})
db.集合名称.find({$or[{"条件集合"}]})
投影: 选择列
db.集合名称.find({查询条件},{投影条件})
例如: db.set1.findOne({},{"name":1})
# 全局更新,使用更新内容替换原来的文档(默认为第一个)
db.集合名.update({条件},{更新内容})
# 局部更新(只会修改指定字段)
db.集合名称.update({条件},{$set:{更新内容}})
例如: db.set1.update({"name":"wangwu"},{$set:{"age":18}})
# 批量修改(上面语句默认修改一条) 使用updateMany命令
db.set1.updateMany({"name":"wangwu"},{$set:{"age":18}})
# 使用$inc函数为增加
db.集合名称.update({条件}{$inc:{"增加字段":增加值}})
# 会删除条件匹配的所有数据
db.集合名称.remove({条件})
# 删除集合中全部数据
db.集合名称.remove()
# 统计,不带条件统计所有
db.集合名称.count({查询条件})
# 查询前2条记录
db.集合名称.find().limit(2)
# 跳过前2条数据
db.集合名称.find().limit(2)
# 分页查询(配合skip和limit)
db.集合名称.find().limit(2).skip(3)
# 1为降序,-1为升序
db.集合名称.find().sort({排序字段:1})
db.集合名称.find({查询条件:/正则/})
db.集合名称.find({"字段":{$指令:值}})
/*
指令:
> gt
< lt
>= gte
<= lte
!= ne
*/
db.集合名称.find({"字段":{$in:["匹配集合"]}})
索引: 通过特定数据结构,提高查询效率(B树)
查看索引:
# 查询集合中所有索引
db.集合名称.getIndexs()
/*
[ { "v" : 2, "key" : { "_id" : 1 }, "name" : "_id_" } ]
v : 索引版本
key: 索引字段
_id: 升序(-1降序)
name: 索引名称
*/
创建索引:
db.集合名称.createIndex(keys,[options])
例如: db.set1.createIndex({"id":1})
/*
kyes: 为给哪些key创建索引
options(常用):
unique: 唯一索引
name: 索引名称
*/
删除索引:
db.集合名称.dropIndex({指定名称或者条件})
例如: db.set1.dropIndex({"id":1})
# 删除所有索引
db.集合名称.dropIndexes()
相当于mysql的: explain
db.集合名称.find().explain()