• mongodb


    2019年6月10日:
    MongoDB回顾:
    MongoDB缺陷-牺牲掉大部分磁盘空间
    1.MongoDB启动
    	mongod 启动 查找的db目录默认是在 C:datadb
    	mongod --dbpath=D:datadb
    	[thread1] waiting for connections on port 27017
    	默认端口 27017
    
    2.MongoDB指令
    	show databases 查询当前服务器磁盘中的数据库
    	use dbname 切换或者在内存中创建数据库
    		当dbname 存在时切换
    		当dbname 不存在时在内存中创建数据库
    	
    	show tables 查询当前数据库磁盘中的数据表(Collection)
    	db	代指当前使用的数据库 查询当前使用的数据库名
    	db.tablename 查看或创建当前数据库下的数据表(内存中)
    	
    	MongoDB - 使用了不存在的对象即创建该对象
    	
    3.增删改查
    	增加
    	db.tablename.insert() 增加数据 官方在3.2版本以后不推荐的写法
    	db.tablename.insertOne({})增加单条数据
    	db.tablename.insertMany([{},{},{}])增加多条数据
    	
    	查询
    	db.tablename.find({}) 查找符合条件的所有数据 
    	db.tablename.findOne({}) 查找符合条件的第一条数据
    	查询条件
    		并列条件{id:1,age:6}
    		$or
    		$and
    		$in
    		$all
    		
    	修改 Array Object==字典 Array+Object - Object+Array+Object
    	db.tablename.update() 修改数据 官方在3.2版本以后不推荐的写法
    	db.tablename.updateOne({},{$修改器:{预修改值}}) 查找并更新符合条件的第一条数据
    	db.tablename.updateMany({},{$修改器:{预修改值}}) 查找并更新符合条件的所有数据
    	修改器 : 
    	$set  强制修改 {$set:{age:2}}
    	$inc  引用增加 {$inc:{age:1}} {$inc:{age:-1}}
    	$unset 删除字段 {$unset:{age:1}}
    	Array: #列表
    	$push 在Array中追加一个元素 {$push:{user_list:"alexander"}} append()
    	$pushAll 在Array中追加多个元素 {$pushAll:{user_list:[1,2,3,4,5,1,2,3]}} extend()
    	$pull 在 Array 中删除一条符合条件的数据 {$pull:{user_list:1}}
    	$pullAll 在 Array 中删除多个符合条件的元素	{$pullAll:{user_list:[1,2,3,4,5]}}
    	$pop 在 Array 中删除最后一个元素或者是第一个元素
    		{$pop:{user_list:-1}} 删除第一个元素
    		{$pop:{user_list:1}} 删除最后一个元素
    	
    	例:{name:1,hobby:[1,2,3,4,5,6]}	
    	将 6 改为 7
    	db.tablename.updateOne({hobby:6,name:1},{$set:{"hobby.$":7}})
    	将 3 从列表中删除
    	db.tablename.updateOne({name:1},{$pull:{hobby:3}})
    	
    	Array + Object:
    	{name:1,hobby:[{type:1,detail:"抽烟"},{type:2,detail:"喝酒"}]}	
    	将 抽烟 改为 飙车
    	db.tablename.updateOne({"hobby.detail":"抽烟"},{$set:{"hobby.$.detail":"飙车"}})
    	
    	删除:
    	db.tablename.remove({}) 删除所有符合条件的数据 官方在3.2版本以后不推荐的写法
    	db.tablename.deleteOne({}) 删除第一条符合条件的数据
    	db.tablename.deleteMany({}) 删除所有符合条件的数据
    	
    
    
    4.$
    	存储符合条件元素的下标索引
    	例:{name:1,hobby:[1,2,3,4,5,6]}	
    	将 6 改为 7
    	db.tablename.updateOne({hobby:6,name:1},{$set:{"hobby.$":7}})
    	Array + Object:
    	{name:1,hobby:[{type:1,detail:"抽烟"},{type:2,detail:"喝酒"}]}	
    	将 抽烟 改为 飙车
    	db.tablename.updateOne({"hobby.detail":"抽烟"},{$set:{"hobby.$.detail":"飙车"}})
    
    
    5.$关键字
    	数学比较符:
    	$lt 小于
    	$lte 小于等于
    	$gt 大于(G == g == 哥)
    	$gte 大于等于
    	$ne	不等于 (no不 e等于)
    	$eq 等于 (: 在 :不能使用或者是不代表等于的情况使用 $eq)
    	
    	$查询关键字:
    	$or 或条件查询 name:1,age:6 在不同字段情况下查询
    	db.tablename.find({$or:[{name:1},{age:6}]})
    	$and 并列条件
    	db.tablename.findOne({$and:[{name:1},{age:6}]})
    	db.tablename.findOne({name:1,age:6})
    	$in 或条件查询 相同字段的查询
    	db.tablename.find({age:{$in:[6,10,12,14,16]}})
    	//db.tablename.find({$or:[{age:6},{age:10}]})
    	
    	$all 查询子集或完全子集
    	例:{name:1,hobby:[1,2,3,4,5,6]}	
    	db.tablename.findOne({hobby:{$all:[1,5,3]}}) 不存在顺序
    	//db.tablename.findOne({hobby:{$all:[1,3,7]}}) 不是子集
    
    
    
    1.sort
    db.users.find({}).sort({ _id:-1 }) // 排序 1 正序 -1 倒序
    
    2.limit
    db.users.find({}).limit(5)  //选取 
    db.users.find({}).limit(5).sort({ _id:-1 })  //选取排序逻辑顺序 , 先排序 再选取 
    
    3.skip
    db.users.find({}).skip(9) // 跳过 
    db.users.find({}).skip(2).sort({ _id:-1 }) // 跳过排序逻辑熟悉怒 先排序 后跳过
    
    混合用法
    db.users.find({}).limit(5).skip(5) // 逻辑顺序 先跳过再选取
    db.users.find({}).limit(5).skip(5).sort({ _id:-1 }) // 排序跳过选取,逻辑顺序 1.先排序 2.跳过 3.选取
    
    4.分页
    db.users.find({}).limit(2).skip(0).sort({ _id:-1 }) // 第一页
    db.users.find({}).limit(2).skip(2).sort({ _id:-1 }) // 第二页
    db.users.find({}).limit(2).skip(4).sort({ _id:-1 }) // 第三页
    db.users.find({}).limit(2).skip(6).sort({ _id:-1 }) // 第四页
    db.users.find({}).limit(2).skip(8).sort({ _id:-1 }) // 第五页
    

      

  • 相关阅读:
    获取UltraWebTree指定节点的所有父节点内容
    OnClientClick
    ListControl控件经典用法
    DataTable添加列时容易被忽略的问题!
    利用数据库来填充UltraWebTree
    Web导出Word需要添加头文件
    程序中添加动态用户密码
    重构oninit,应用在模式窗口的方法
    防SQL注入
    获得connect string简单方法
  • 原文地址:https://www.cnblogs.com/ellisonzhang/p/10999764.html
Copyright © 2020-2023  润新知