MongoDB的原生命令

MongoDB

| Mongodb |mySQL|
|数据库(database)|数据库(database)|
| 集合(collection) | 表(table)|
| 文档(document)| 行(row) |

1.创建数据库:Create Database

2.创建集合:Create Collection 删除集合 DROP

3.插入文档:

包含的数据类型:
①null:空值 {“xx”:null};
②布尔:true false {“xx”:true};
③数值:shell默认64位浮点型数值:{“xx”:3.14}或{“xx”:3};
整型:4字节NumberInt 和 8字节NumberLong {“xx”:NumberInt(“3”)};
④字符串:UTF-8字符串都可以表示为字符串类型的数据,{“x”:“呵呵”};
⑤日期:日期被存储为自新纪元依赖经过的毫秒数,不存储时区,{“x”:new Date()}
⑥正则表达式:查询是,使用正则表达式作为限定条件,语法与JavaScript的正则表达式相同,{“xx”😕[abc]/}
⑦数组:数据列表或者数据集可以表示为数组{“x”:[“a”,“b”,“c”]}
⑧内嵌文档:文档可以嵌套其他文档,被嵌套的文档作为值来处理,{“x”:{“y”:3}}
⑨对象id:对象id是一个12字节的字符串,是文档的唯一标识,{“x”:objectid()}
⑩二进制数据:二进制数据是一个任意字节的字符串。它不能直接在shell中使用。如果非utf-字符保存到数据库中,二进制数据是唯一的方式。
代码:查询和文档中可以包括任何JavaScript代码,{“x”:function(){/…/};
MongoDB 使用 insert() 或 save() 方法向集合中插入文档,语法如下
db.aatest.insert({“userID”:“0001”,“username”:“lulu”,“userpassword”:“123456”});
#注释:aatest (集合名)

3.更新文档:

MongoDB 使用 update() 或 save() 方法向集合中插入文档,语法如下
db.aatest.update({“userID”:“0001”,“username”:“lulu”,“userpassword”:“123456”},{$set:{‘username’:‘happy’}});
s e t : 表 示 仅 修 改 该 字 段 , 保 留 其 他 未 提 到 的 内 容 ; 错 误 : d b . a a t e s t . u p d a t e ( " u s e r I D " : " 0001 " , " u s e r n a m e " : " h a p p y " ) ; 运 行 结 果 : 会 将 文 档 的 内 容 修 改 为 " u s e r n a m e " : " h a p p y " ; 1. set:表示仅修改该字段,保留其他未提到的内容; 错误:db.aatest.update({"userID":"0001"},{"username":"happy"}); 运行结果:会将文档的内容修改为{"username":"happy"}; 1. set:,db.aatest.update("userID":"0001","username":"happy");"username":"happy"1.inc(增减命令)
2. s e t ( 用 来 指 定 一 个 键 更 新 键 值 , 若 键 不 存 在 并 创 建 ) 3. set(用来指定一个键更新键值,若键不存在并创建) 3. set()3.unset(删除命令)
4. p u s h ( 数 组 修 改 器 ) 5. push(数组修改器) 5. push()5.ne/ a d d T o S e t p o p 、 p u l l ( 数 组 修 改 器 ) 6. addToSet pop、pull (数组修改器) 6. addToSetpoppull()6.upsert
7.$save

4.删除文档:

MongoDB remove()函数是用来移除集合中的数据。
MongoDB数据更新可以使用update()函数。在执行remove()函数前可以先执行find()命令来判断执行的条件是否正确
语法如下:
db.aatest.remove({‘userID’:‘0002’});
注意:db.aatest.remove({}); 表示删除整个文档的语法。

5.查询文档:

MongoDB 查询文档使用 find() 方法。
find() 方法以非结构化的方式来显示所有文档。
find 参数说明:
query :(可选)删除的文档的条件。
justOne : (可选)如果设为 true 或 1,则只删除一个文档,如果不设置该参数,或使用默认值 false,则删除所有匹配条件的文档。
writeConcern :(可选)抛出异常的级别。
语法如下:
db.aatest.find ({‘userID’:‘0003’});
如果有多条数据可以使用:db.aatest.find().limit(2);

6.统计条数:

统计aatest集合的记录数:
db.aatest.count()
统计userID为0001的记录条数
db.aatest.count({“userID”:“0001”});

7.模糊查询

MongoDB模糊查询是通过正则表达式实现的,格式:/模糊查询字符串/;
例如:要查询内容以“加班”开头的:db.aatest.find({content:/^加班/})

8.大于 小于 不等于

db.集合名称.find({“field”:{$gt:value}}) //大于 >:field>value 英文:greater than
$lt //小于:field<value 英文:less than
$gte //大于等于:fiels>=value 英文:greater than equal
$lte //小于等于
KaTeX parse error: Expected '}', got 'EOF' at end of input: ….find({visits:{gt:1000}});

9.包含和不包含

包含使用 i n 操 作 符 不 包 含 使 用 in操作符 不包含 使用 in使nin
例:db.aatest.find({userID:{$in:[“1013”,“1014”]}})

10.条件连接

且的关系:使用 a n d 操 作 符 将 条 件 进 行 关 联 格 式 : and操作符将条件进行关联 格式: andand:[{},{},{}]
visits>=1000并且visits<2000;
例:db.aatest.find({KaTeX parse error: Expected '}', got 'EOF' at end of input: and:[ {visits:{gte:1000}} ,{visits:{KaTeX parse error: Expected 'EOF', got '}' at position 8: lt:2000}̲ }]}) 或的关系:使用or操作符
格式:KaTeX parse error: Expected '}', got 'EOF' at end of input: …b.aatest.find({or:[ {userID:“0003”} ,{visits:{$lt:2000} ]})

11.列值增减

实现对某列值的增加或减少x,使用KaTeX parse error: Expected '}', got 'EOF' at end of input: …ate({_id:"2"},{inc:{visits:NumberInt(1)}} )

12.Limit 与 Skip

limit:限制显示的记录条数 skip:跳过前面多少条记录
db.getCollection(‘a_test’).find({}).limit(4);

13.排序:sort()

db.getCollection('a_test').find({time:{$exists:true}}).sort({_id:-1}); 1是升序,-1是降序

14.判断该字段是否存在:$exists

db.getCollection(‘tms_carpushagain_info’).find({companyCode:“TPBX1000000”,secondNameBelong:{$exists:false}})

15.索引:createIndex()方法

1.db.getCollection('a_test').createIndex({'userId':1})  
	也可以多字段共同创建索引

删除集合中的所有索引:
2.db.getCollection(‘a_test’).dropIndexes();
3.db.getCollection(‘a_test’).dropIndexes(“索引名称”); 删除指定索引
查看集合索引:
4.db.getCollection(‘a_test’).getIndexes();
注意利用TTL集合对存储的数据进行失效时间设置
1.例如数据记录中 createDate 为日期类型时:
设置时间1分钟后自动清除。
设置在创建记录后,1分钟左右删除。(这个可以用来保存用户登录信息,定期清除)。
db.col.createIndex({“createDate”: 1},{expireAfterSeconds: 60});
2.由记录中设定日期点清除。
db.col.createIndex({“ClearUpDate”: 1},{expireAfterSeconds: 0});

16.聚合:aggregate()方法

$sum	$avg	$min	$max
$push(在结果文档中插入值到一个数组中)	$addToSet(在结果文档中插入值到一个数组中,但不创建副本)创建副本)
$first(根据资源文档的排序获取第一个文档数据)$last(根据资源文档的排序获取最后一个文档数据)

管道的概念:一个管道处理完毕后将结果传递给下一个管道处理。管道操作是可以重复的。

  1. $project:修改输入文档的结构。可以用来重命名、增加或删除域,也可以用于创建计算结果以及嵌套文档。
  2. m a t c h : 用 于 过 滤 数 据 , 只 输 出 符 合 条 件 的 文 档 。 match:用于过滤数据,只输出符合条件的文档。 matchmatch使用MongoDB的标准查询操作。
  3. $group:将集合中的文档分组,可用于统计结果。
  4. $sort:将输入文档排序后输出。
  5. $limit:用来限制MongoDB聚合管道返回的文档数。
  6. $skip:在聚合管道中跳过指定数量的文档,并返回余下的文档。
  7. $unwind:将文档中的某一个数组类型字段拆分成多条,每条包含数组中的一个值。
  8. $geoNear:输出接近某一地理位置的有序文档。
    列如:聚合管道
	db.getCollection('tms_carlist_info').aggregate([
{$match:{businessType:{$lt:3}}},
{$group:{_id:{'pushStatus':'$pushStatus'},failNum:{'$sum':1}}},
{$project:{'_id':false,'failNum':'$failNum'}}
]);
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值