3.MongoDB 基本命令
3.1 数据库操作
3.1.1 查看数据库
show dbs
3.1.2 创建数据库
use articledb
如果不存在articledb数据库,会自动创建
此时如果再输入show dbs 查看数据库,发现没有新增。这是因为mongoDB新建数据库的时候,会先在内存中创建,当数据库中有集合的时候,才会持久化到磁盘中。
3.1.3 删除数据库
db.dropDatabase()
3.2 集合操作
3.2.1 集合创建
显式创建
db.createCollection("my")
3.2.2 查询集合
show collections
3.2.3. 删除集合
db.集合名.drop()
3.3 文档操作
3.3.1 插入文档
db.集合名.insert(json串)
# 批量插入
db.集合名.inserMany(json串数组)
如果集合不存在,会自动创建
3.3.2 查询所有文档
db.集合名.find()
3.3.3 查询指定条件的文档
db.集合名,find({field:value})
3.3.4. 只返回一个文档
db.集合名.findOne({field:value})
3.4.4 只返回部分字段
db.集合名.find({field:value}, {字段名:1, 字段名:0}) # 1表示显示,0不显示
3.4.5. 文档的更新
例:修改_id 为1的记录的点赞量为1001
db.集合名.update({_id: "1"}, {likenum: NumberInt(1001)})
执行后发现,这条文档除了likenum字段其它字段都不见了
为了解决这个问题,需要使用修改$set实现
db.集合名.update({_id: "1"}, {$set: {likenum:NumberInt()}})
批量修改
# 默认只修改第一条数据
db.comment.update({userid: "1003"}, {$set:{nickname: “撒撒”}})
# 批量修改
db.comment.uodate({userid: "1003"}, {$set: {nickname: "撒撒"}, {multi:true})
列值增长
db.comment.update({userid: "1003"}, {$inc: {likenum: NumberInt(1)}})
3.4.6 删除文档
语法结构
db.集合名称.remove(条件)
# 删除id=1的文档
db.comment.remove({_id:1})
#将数据全部删除
db.comment.remove({})
3.4.7 文档分页查询
统计文档个数
db.comment.count()
查询前两条
db.comment.find().limit(2)
查询第三四条
db.comment.find().limit(2).skip(2)
3.4.7. 排序查询
以userid升序排列
db.comment.find().sort({userid:1})
以userid降序, likenum升序
db.comment.find().sort({userid:-1, likenum:1})
3.4 正则的复杂条件查询
格式:
db.集合名字.find({字段:/正则表达式/})
查询content字段包含“开水”的文档
db.comment.find({content:/开水/})
查询点赞数大于700的所有文档
db.comment.find({likenum:{$gt: 700}})
查询评论的集合中userid字段包含1003或1004的文档
db.comment.find({userid: {$in:["1003", "1004"]}})
查询评论集合中likenum大于等于700并且小于2000的文档
db.comment.find({$and: [{likenum:{$gte:NumberInt(700)}}, {likenum:{$lt: NumberInt(2000)}}]})
查询评论集合中userid为1003, 或者点赞数小于1000的文档
db.comment.find({$or: [{userid:"1003"}, {likenum: {$lt:1000}}]})