Mongodb常用语法

一,以MySql为例,和Mongodb的对比

MySql术语MongoDB术语说明
databasedatabase数据库
tablecollection表/集合
rowdocument行/文档
columnfield字段/域
indexindex索引
primary keyprimary key主键,Mongodb自动将_id作为主键

二,基础语法 

1,创建集合

db.createCollection("test");

2,插入文档

mongodb的save和insert函数都可以向collection里插入数据,但两者是有两个区别:

一、使用save函数里,如果原来的对象不存在,那他们都可以向collection里插入数据,如果已经存在,save会调用update更新里面的记录,而insert则会忽略操作

二、insert可以一次性插入一个列表,而不用遍历,效率高, save则需要遍历列表,一个个插入。

db.test.insert({code:"001",name:"张三",mobile:"18101607001",sex:"1",height:177,score:100,remark:"测试1"});
db.test.insert({code:"002",name:"李四",mobile:"18101607002",sex:"0",height:160,score:98,remark:"测试2"});
db.test.insert({code:"003",name:"王五",mobile:"18101607003",sex:"1",height:178,score:96,remark:"测试3"});
db.test.insert({code:"004",name:"赵六",mobile:"18101607004",sex:"1",height:181,score:71,remark:"测试4"});
db.test.insert({code:"005",name:"李磊",mobile:"18101607005",sex:"1",height:177,score:58,remark:"测试5"});
db.test.insert({code:"006",name:"石雷",mobile:"18101607006",sex:"0",height:160,score:60,remark:"测试6"});
db.test.insert({code:"007",name:"王风",mobile:"18101607007",sex:"1",height:178,score:67,remark:"测试7"});
db.test.insert({code:"008",name:"石川",mobile:"18101607008",sex:"1",height:181,score:89,remark:"测试8"});

3,更新文档

参数说明:

query : update的查询条件,类似sql update查询内where后面的。
update : update的对象和一些更新的操作符(如, ,,inc…)等,也可以理解为sql update查询内set后面的
upsert : 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
writeConcern :可选,抛出异常的级别。
1).更新一条数据。此处是将name属性的内容”fx“的第一条数据内容改为”jintianshigehaorizi“。
例(将赵六的性别修改为0):

db.test.update({name:"赵六"}, {$set:{sex:"0"}});

2).更改多条数据:

例(将性别为0的备注清空):

db.test.updateMany({sex:"0"}, {$set:{remark:""}});

4,删除文档

方法一:remove()方法

1、MongoDB中的 remove()方法用于从集合中删除文档。

2、remove()方法接受两个参数。

criteria – (可选)符合删除条件的集合将被删除。

justOne – (可选)如果设置为true或1,则只删除一个文档。

3、删除集合col下全部文档

例(清空整个集合):

db.test.remove({});

方法二:deleteOne()方法

1、deleteOne()方法是官方推荐删除文档的方法。

2、该方法只删除满足条件的第一条文档。

3、删除指定条件的文档:删除 age等于 18 的一个文档

例(删除性别为0的第一个文档):

db.test.deleteOne({sex:"0"});

方法三:deleteMany()方法

1、deleteMany方法是官方推荐的删除方法。

2、该方法删除满足条件的所有数据。

3、删除集合col下全部文档

例(删除性别为0的所有文档):

db.test.deleteMany({sex:"0"});

5,查询文档

1,基本查询:

db.collectionName.find({ key: value })

这将返回集合"collectionName"中所有满足条件"key"等于"value"的文档。

例(查询姓名为张三的文档):

db.test.find({name:"张三"});

 2,查询特定字段

db.collectionName.find({}, { key: 1 })

这将返回集合"collectionName"中所有文档,但只包含"key"字段。

例(仅查询手机号):

db.test.find({name:"张三"},{"mobile":1});

3,范围查询

查询 身高>= 177 并且 身高 <= 178 注意书写格式

db.test.find({height:{$gte:177,$lte:178}});

4,in

db.test.find({code:{$in:["001","002"]}});

5,not in

db.test.find({code:{$nin:["001","002"]}});

 6,and

db.test.find({$and:[{code:"001"},{name:"张三"}]});

 7,or

db.test.find({$or:[{code:"001"},{name:"李四"}]});

8,count

db.test.count({$or:[{code:"001"},{name:"李四"}]});

9,模糊查询

db.test.find({remark:/试/});
db.test.find({remark:/^测/});

10,聚合查询

db.test.aggregate([{$match:{sex:"1"}},{$group:{_id:"$height",sumInfo:{$sum:"$score"},countInfo:{$sum:1}}}]);

【详细教程】一文参透MongoDB聚合查询_博学谷狂野架构师的博客-CSDN博客聚合操作主要用于处理数据并返回计算结果。聚合操作将来自多个文档的值组合在一起,按条件分组后,再进行一系列操作(如求和、平均值、最大值、最小值)以返回单个结果。_mongodb聚合查询https://blog.csdn.net/bxg_kyjgs/article/details/125803527

6,Limit和Skip

1,查询前 2条数据

db.test.find().limit(2);

相当于:select top 2 * from test;

2,查询 2 条以后的数据

db.test.find().skip(2);

相当于:select * from test where id not in (
select top 2 * from userInfo
);

3,查询在 2-4 之间的数据

db.test.find().limit(4).skip(2);

可用于分页,limit 是 pageSize,skip 是第几页*pageSize

7,排序

升序:

db.test.find().sort({height:1});

降序:

db.test.find().sort({height:-1});

8,删除集合

db.test.drop();

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值