MongoDB 基本 *** 作和聚合 *** 作

MongoDB 基本 *** 作和聚合 *** 作,第1张

概述一 . MongoDB 基本 *** 作 基本 *** 作可以简单分为查询、插入、更新、删除。 1 文档查询 作用 MySQL SQL MongoDB 所有记录 SELECT * FROM users; db.use 一 . MongoDB 基本 *** 作

 基本 *** 作可以简单分为查询、插入、更新、删除。

1 文档查询
作用MysqL sql MongoDB 
所有记录 SELECT * FROM users; db.users.find(); 
age =18 SELECT * FROM users WHERE age = 18; db.users.find({“age”:18}); 
筛选字段SELECT age FROM users WHERE age = 18; db.users.find({“age”:18},{age:1}); 
排序SELECT * FROM users ORDER BY name ASC db.users.find().sort({name:1}); 
比较SELECT * FROM users WHERE age > 18; db.users.find({“age”:{$gt:18}}); 
正则 SELECT * FROM users WHERE name liKE zha; db.users.find({“name”:/^zha/});
忽略 SELECT * FROM users liMIT 10 SKIP 20; db.users.find().limit(10).skip(20); 
or SELECT * FROM users WHERE a=1 or b=2; db.users.find({$or : [{ a : 1},{b : 2}]});
distinct SELECT disTINCT name FROM users;db.users.distinct(‘name'); 
count SELECT COUNT(name) FROM users; db.users.find({name: {'$exists': true}}).count(); 
2.文档插入
作用  *** 作指令(案例) 
单文档插入 db.inventory.insertOne( { item: "canvas",qty: 100,Tags: ["cotton"],size: { h: 28,w: 35.5,uom: "cm" } } ) 
多文档批量插入

db.inventory.insertMany([ { item: "journal",qty: 25,Tags: ["blank","red"],size: { h: 14,w: 21,uom: "cm" } },

{ item: "mat",qty: 85,Tags: ["gray"],size: { h: 27.9,

{ item: "mousepad",Tags: ["gel","blue"],size: { h: 19,w: 22.85,uom: "cm" } } ]) 

文档大量插入时,通过多文档批量插入的形式可以大大提高性能,但是MongoDB 4.0 之前的版本是单文档事务型,所以,在多文档批量插入时,不能保证所有文档 *** 作的原子性,即插入过程中,如果不幸出现了系统问题,有可能部分文档插入成功,而部分文档插入失败。

3.文档更新

文档更新主要有两种形式,一种是替换修改,一种是通过 *** 作符修改。后者是常见的修改方式,在此主要讲解后者。

*** 作符  *** 作符描述
$inc 根据给定的值增加字段
$set 设置字段给定的值
$unset 取消设置字段
$rename重命名字段为给定的值
$setonInsert

在upsert中,只在插入时设置字段;

如果要更新的文档存在那么$setonInsert *** 作符不做任何处理

$bit只执行按位更新字段

关于数组数据的更新 *** 作符

数组 *** 作符数组 *** 作符描述
$push添加值到数组中
$addToSet 添加值到数组中,重复了也不处理
$pop 从数组中删除第一个或最后一个值
$pull从数组中删除匹配查询条件的值
$eash与$push和$addToSet一起使用来 *** 作多个值
$slice与$push和$each一起使用来缩小更新后数组的大小

 

4.文档删除

集合数据的删除主要通过remove的命令来删除,类似于关系型数据库中的delete。

 

聚合 *** 作
MysqLMongoDB功能描述
select $project 指定输出文档里的字段 
where $match 选择要处理的文档,与find()类似
group by $group根据key来分组文档 
having $match 刷选文档
limit $limit 限制传递给下一步的文档数量
order by $sort 排序文档 
count/sum $sum 统计 
join $unwind 扩展数组,为每个数组入口生成一个输出文档 
join $look up 表关联 
skip $skip 跳过一定数据量的文档 
总结

以上是内存溢出为你收集整理的MongoDB 基本 *** 作和聚合 *** 作全部内容,希望文章能够帮你解决MongoDB 基本 *** 作和聚合 *** 作所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/1152031.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-31
下一篇2022-05-31

发表评论

登录后才能评论

评论列表(0条)

    保存