目录
1.启动MongoDB
1.启动服务
在bin目录下打开cmd,输入
mongod --dbpath=..\data\db
2.Shell连接
在cmd中输入以下指令完成登录
mongo
或
mongo --host=127.0.0.1 --port=27017
2.数据库操作
1.查看已有数据库
show databases
2.选择/创建数据库
使用该数据库,若不存在,则会先创建这个数据库,然后再使用
use 数据库名称
3.查看当前数据库
db
4.数据库删除
db.dropDatabase()
5.退出
exit
3.集合操作
1.集合的显式创建
db.createCollection("name")
2.查看所有集合
show collections
或
show tables
3.集合的删除
db.集合名.drop()
4.文档基本CRUD
1.单个文档插入
db.集合名字.insert({"字段1":"值","字段2":"值",·····})
注意:
1. 文档中的键 / 值对是有序的。
2. 文档中的值不仅可以是在双引号里面的字符串,还可以是其他几种数据类型(甚至可以是整个嵌入的文档 ) 。
3. MongoDB 区分类型和大小写。
4. MongoDB 的文档不能有重复的键。
5. 文档的键是字符串。除了少数例外情况,键可以使用任意 UTF-8 字符。
2.批量插入
db.集合名.insertMany([{字段:值,···},{字段:值,···},···])
3.查询
db.集合名.find() //查询全部
db.集合名.find({字段:值,字段:值···}) //查询字段值符合条件的文档
4.投影查询
就是只查询部分字段
db.集合名字.find({条件},{字段:0/1,字段:0/1}) //要查询的字段值为1,不需要查询的值为0
5.文档更新
db.comment.update({条件},{修改后的数据}) //直接覆盖
db.comment.update({条件},{$set:{要修改部分的字段:数据}) //部分字段修改,默认只修改一个
db.comment.update({条件},{$set:{要修改部分的字段:数据}),{multi:true}) //符合条件的全部修改
db.comment.update({_id:"3"},{$inc:{likenum:NumberInt(1)}}) //自增长,id为3的文档的likenum加一
6.文档删除
db.集合名称.remove(条件)
7.统计查询
db.comment.count() //查询所有记录数
db.comment.count({字段:值,···}) //符合条件的
8.排序查询
db.COLLECTION_NAME.find().sort({KEY:1}) //1代表升序,-1代表降序
9.分页查询
db.COLLECTION_NAME.find().limit(NUMBER).skip(NUMBER)
skip跳过几条数据,limit显示几条数据
10.模糊查询
mongodb的模糊查询是使用正则表达式来实现的。格式为:
db.collection.find({field:/正则表达式/})
或
db.集合.find({字段:/正则表达式/})
11.比较查询
db.集合名称.find({ "field" : { $gt: value }}) // 大于: field > value
db.集合名称.find({ "field" : { $lt: value }}) // 小于: field < value
db.集合名称.find({ "field" : { $gte: value }}) // 大于等于: field >= value
db.集合名称.find({ "field" : { $lte: value }}) // 小于等于: field <= value
db.集合名称.find({ "field" : { $ne: value }}) // 不等于: field != value
12.包含查询
db.comment.find({userid:{$in:["1003","1004"]}}) //包含使用in
db.comment.find({userid:{$nin:["1003","1004"]}}) //不包含使用nin
13.条件连接查询
$and:[ { },{ },{ } ]
$or:[ { },{ },{ } ]
5.索引
1.索引的查看
db.collection.getIndexes()
2.索引的创建
db.collection.createIndex(keys, options)
3.索引的移除
db.collection.dropIndex(index)
例: db.comment.dropIndex({userid:1})
4.移除所有索引
db.collection.dropIndexes()