时间:2021-07-01 10:21:17 帮助过:21人阅读
mongoDb
干嘛的:数据库,nosql(非关系型|缓存型)
场景:解决大规模数据集合多重数据种类
 下载:https://www.mongodb.com/download-center
	安装:https://www.cnblogs.com/keyi/p/10984514.html
	测试服务端是否启动: 
		启动客户端: 安装目录\Server\4.0\bin\    mongo 回车
		手动启动服务端:安装目录\Server\4.0\bin\   mongod 回车
			port=27017	默认端口
			mongodb://127.0.0.1:27017	协议+IP+端口
	指定数据存储目录: 需要指定一次
		mongod --dbpath c:\data\db    db目录要手动创建
	环境变量:为了在任意盘符下去启动客户端和服务端  mongod服务端|mongo客户端
		我的电脑->属性->高级配置->环境变量-》 + key:value
开启客户端: mongo 回车
		UI工具软件: 收费(下载+缴费)
		原生命令行(shell):	cmd->mongo回车	git bash - > mongo回车     webstrom->dos/linux
		nodejs: 安装mongodb的包(客户端)
和mysql对比
	名词
		mysql			mongoDb
		database(库)		database(库)
		table(表)		collection(集合)
		row(一条数据)	document(文档)
		column(字段)		field(区域)
		...
	存储方式:
		mysql 二维表
		MongoDB json
	mongodb命令行操作方式:  声明式 | obj.api()
库操作:
		查: show dbs
			db 查看当前库
		建:	use 库名	   没有建,有就切换
	集合(表)操作:
		建:db.createCollection(‘表名‘,{配置})
			配置:{size:文件大小,capped:true,max:条数|文档数} capped定量
			db.表(集合).isCapped() 返回 true/false 是否是定量
		查:show collections / db.getCollectionNames()
		删:db.表|集合.drop()
	文档(row)操作:
		增:
			db.集合.save({}) / db.集合.insert({})  添加一条
			db.insertOne({})
			db.集合.save([{},{}]) / db.集合.insert([{},{}]) 多条
			insert  不会替换相同ID	save会
		删:
			db.集合.deleteOne({要删数据条件描述}) db.集合.remove({},true)  一条
			db.集合.remove({要删数据条件描述}) 多条
			db.集合.remove({}) 清空表
		改:
			db.集合.udpate({查询条件},{替换条件},插入bl,全替换bl)
			替换后的:
				{$set:{数据},$inc:{age:1}}
		查:
			所有:db.集合.find(条件)
			条数: db.集合.find().count()
			去重:db.集合.distinct(key)
			条件
				{age:22}			age == 22
				{age:{$gt:22}}		age > 22
				{age:{$lt:22}}    	age < 22
				{age:{$gte:22}}		age>=22
				{age:{$lte:22}}		age<=22
				{age:{$lte:122,$gte:22}}	age<=122 && age>=22
				{$or:[{age:22},{age:122}]}	22 or 122
				{key:value,key2,value2}  value && value2
				{name:/正则/}
			db.集合.find({条件},{指定要显示列区域})
				指定要显示列区域: 区域名username:1 显示着个区域,其他不显示
				指定要显示列区域: 区域名username:0 不显示着个区域,其他显示
				_id 是默认显示
			限定:
				db.集合.find().limit(number)  限定
				db.集合.find().skip(number)	跳过
				db.集合.findOne() / db.集合.find().limit(1)  查询第一条
		排
			升:db.集合.find().sort({key:1,key2:-1})
			降:db.集合.find().sort({key:-1})
		db.集合.find({条件},{指定显示区域}).skip(10).limit(10).sort({key:1})
		db.insertOne({数据描述})
	mongodb 客户端包   mongodb | mongoos
		1.	require(‘mongodb‘); 引入模块  第三方模块
		2.	创建客户端	mongoCt = mongodb.MongoClient
		3.	创建链接	mongoCt.connect(‘协议://地址:端口‘,回调(err,client))
		3.5 链库 		client.db(‘库名‘)
		4.	链接集合(表) 	user = db.collection(‘集合名‘);
		5.	user.API()  集合操作		返回 对象
			one === 1  Many 多个
			增
				insertOne(对象数据,(err,res)=>{})  res = 对象  
				insertMany(arr数据,(err,res)=>{}) res = 对象  
					res.result.n 结果  ok 状态
					res.ops内容  数组
					result.insertedId 插入后的id
			删:
				deleteOne({条件},(err,result)=>{})
					res.result.n 结果  ok 状态
					result.deletedCount:1  删除的条数
			改:
				updateOne({条件},{更新后},(err,res)=>{})
				updateMany({条件},{更新后},(err,res)=>{})
					res.result.n 结果  ok 状态
					res.modifiedCount  修改的条数
					updateMany({条件},{更新后},{配置},(err,res)=>{})
					
					配置: upsert:true 插入
						  projection:true 全局替换
			查:
				user.find({条件},{skip:1,limit:1,projection:{key:1}},(err,result)=>{result=对象})
				user.find({条件},{projection:{key:0}}).toArray((err,result)=>{reulst==arr})
				user.countDocuments((err,num)=>{num返回数量})
			排序
				user.find(..).sort({key:-1}).toArray..
				user.find({},{projection:{},sort:{key:-1}}).toArray..
		6. client.close() 关闭库链接
mongDb在node中的操作
标签:html 描述 维表 find nec node 指定 回调 mongo