mangodb简单使用

本文档详细介绍了MongoDB的安装步骤,包括在Linux上的解压、配置、数据目录设置及启动。此外,还讲解了MongoDB的图形化界面下载、常用数据库和集合操作,如CRUD(创建、读取、更新、删除),以及分页查询、排序和正则表达式查询。同时,提到了索引的创建、管理和使用,包括单字段、复合及特殊类型的索引。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

安装

下载

官网下载

解压后目录结构

bin :启动脚本
	mongod -f ./conf/mongod.conf
	mongod --config ../conf/mongod.conf
conf:配置文件位置 monggodb.conf
data:数据目录

安装

tar -zxvf mongodb-linux-x86_64-3.6.13.tgz
/opt/mangodb/mongodb/data
/opt/mangodb/mongodb/conf
	添加mongod.conf
/opt/mangodb/mongodb/logs
	添加mongod.log
启动 进入到bin目录./mongod -f ../conf/mongod.conf

图形化界面

下载地址

常用命令

数据库操作

show dbs 查看有哪些数据库
	admin :从权限角度看这是root数据库,钥匙讲一个用户添加到这个数据库,这个用户自动继承所有数据库的权限
	local:这个数据永远不会被复制,可以用来存储限于本地单台服务器的任意集合
	config:当mongo用于分片设置时,config数据库在内部使用,用于保存分片的相关信息
use articledb 创建或者选择数据库
db 查看当前所在的库
db.dropDatabase() 删除当前数据库

集合操作

集合的显示创建
	db.createCollection("listname")
	show collections
集合隐式创建
	插入数据的时候自动创建
集合删除
	db.mycollection.drop()

文档操作CRUD(文档创建用json创建完成bson)

插入
	批量插入db.collection.insertMany()
		db.comment.insertMany([{"_id":"1","articleid":"100000","content":"今天天气dong","userid":"1002","nickname":"Rose","createtime":new Date(),"likenum":NumberInt(1000),"state":"1"},
{"_id":"2","articleid":"100000","content":"今天天气xi","userid":"1005","nickname":"Rose","createtime":new Date(),"likenum":NumberInt(888),"state":"1"},
{"_id":"3","articleid":"100000","content":"今天天气nan","userid":"1004","nickname":"Rose","createtime":new Date(),"likenum":NumberInt(666),"state":"1"},
{"_id":"4","articleid":"100000","content":"今天天气bei","userid":"1003","nickname":"Rose","createtime":new Date(),"likenum":NumberInt(2000),"state":"1"},
{"_id":"5","articleid":"100000","content":"今天天气zhong","userid":"1003","nickname":"Rose","createtime":new Date(),"likenum":NumberInt(3000),"state":"1"}])
	查询 db.comment.find()
		db.comment.find({userid:"1003"})
	插入insert和save等价,如果集合不存在隐式创建
		db.comment.insert({"articleid":"100000","content":"今天天气真好,阳光明媚","userid":"1001","nickname":"Rose","createtime":new Date(),"likenum":NumberInt(10),"state":null})
	强制排除_id列 db.comment.find({articleid:"100000"},{userid:1,_id:0})
	mongodb非强事务,有可能出现插入失败,所以要try{}catch(e){print(e)}
	显示指定列包括_id   db.comment.find({articleid:"100000"},{articleid:1})
更新
	覆盖修改 db.comment.update({_id:"1"},{likenum:NumberInt(1001)})
	局部修改 db.comment.update({_id:"2"},{$set:{likenum:NumberInt(889)}})
	批量修改 db.comment.update({userid:"1003"},{$set:{nikename:"李四"}}{multi:true})
	更新自增长 db.comment.update({_id:"1"},{$inc:{likenum:NumberInt(1)}})
删除
	删除所有 db.comment.remove({})
	根据条件删除 db.comment.remove({userid:"1003"})

分页

统计查询 db.comment.count(query,options)
	db.comment.count() 列出集合中多有的数据条数
	db.comment.count({userid:"1003"}) 查询用户id为1003的条数
分页列表查询
	db.comment.find().limit(2) 查询前两条
	db.comment.find().limit(2).skip(2) 跳过前两条再查询2跳数据
排序查询
	db.comment.find().sort({userid:-1})按照用户ID倒序
	db.comment.find().sort({userid:-1,likenum:1})按照用户ID倒序,点赞量正序
	db.comment.find({},{userid:1,likenum:1}).sort({userid:1})

文档的更多查询

正则的复杂条件查询
	db.comment.find({userid:/3/}) 查询用户id包含3的数据
比较查询
	db.collectionname.find({"field":{$gt:value}}) //大于:field > value
	db.collectionname.find({"field":{$lt:value}}) //小于:field < value
	db.collectionname.find({"field":{$gte:value}}) //大于等于:field >= value
	db.collectionname.find({"field":{$lte:value}}) //小于等于:field <= value
	db.collectionname.find({"field":{$ne:value}}) //不等于:field != value
包含查询
	db.comment.find({userid:{$in:["1003","1002"]}})
条件连接查询
	db.comment.find({$and:[{likenum:{$gte:NumberInt(1000)}},{likenum:{$lte:NumberInt(2000)}}]})
	db.comment.find({$or:[{userid:"1002"},{likenum:{$lte:NumberInt(1000)}}]})

索引

索引类型

单字段索引
复合索引
其他索引
	地理空间索引 Geospatial Index
	文本索引 Text Index
	哈希索引 Hash Index

索引管理操作

索引查看
	db.comment.getIndexes()
索引创建 1升序,-1降序
	db.collections.createIndex(keys,options)
		unique boolean类型建立索引是否唯一
		name String 索引名称
		weights 索引权重
	单列索引
		db.comment.createIndex({userid:1})
	复合索引
		db.comment.createIndex({userid:1,nickname:-1})
索引移除
	文本索引只能通过索引名称删除
	db.collection.dropIndex(index)
		db.comment.dropIndex({userid:1})
		db.comment.dropIndex("userid_1")
		db.comment.dropIndex("userid_1_nickname_-1")
	db.comment.dropIndexes()删除非主键索引外所有索引

索引使用

	执行计划
		db.collection.find(query,options).explain(options)
	涵盖的查询
		查询的列只有索引列,直接查询索引就直接返回
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值