MongoDB 语法大全

前言

  如果您觉得有用的话,记得给博主点个赞,评论,收藏一键三连啊,写作不易啊^ _ ^。
  而且听说点赞的人每天的运气都不会太差,实在白嫖的话,那欢迎常来啊!!!


MongoDB 语法大全

01、mongodb 数据库链接

格式:mongodb:// [username:password@]host1[:port1][,host2[:port2],…[,hostN[:portN]]][/[database][?options]]

其中mongodb:// 是必须要有的。
username:password@ : -可选项 如果设置,链接数据库服务后会尝试登录该数据库
database :-可选项 如果指定username:password@ 链接验证指定数据库,不指定链接test数据库
options :链接选项,如果不使用database 前面需加上/,所有链接选项都是键值对name=value,多个选项时,以&或;分隔。

02、help查看命令提示

help();
db.help();
db.新建集合.help();
例子:db.yangzhenyu.help();

在这里插入图片描述

03、如果数据库存在,则切换到指定的数据库;如果数据库不存在,则创建数据库

use 数据库名;
use yangzhenyu

在这里插入图片描述

04、查询所有的数据库

// 01 插入一条数据,否则show dbs;不显示
db.yangzhenyu.insert({"name":"hello world!!!"});
// 02 查询所有数据库
show dbs;

在这里插入图片描述

05、查看当前数据库

db;或者 db.getName();

在这里插入图片描述

05::01 查看当前数据库状态
db.stats();

在这里插入图片描述

05::02 查看当前数据库版本
db.version();

在这里插入图片描述

05::03 查看当前数据库链接机器
db.getMongo();

在这里插入图片描述

06、插入

db.集合.insert();
在mongoDB中,不需要主动创建集合,当你插入文档时会自动创建
db.yangzhenyu.insert({"xxx":"yang","age":"27","yyy":"zhenyu"});

在这里插入图片描述

07、查询

07::01 查询
db.集合.find()
db.yangzhenyu.find();

在这里插入图片描述

07::02 查询只返回一条数据
db.集合.findOne();
db.yangzhenyu.findOne()

在这里插入图片描述

07::03 条件and查询
db.集合.find({"key1":"name1","key2","name2"});
db.yangzhenyu.find({"xxx":"yang","age":"27"})

在这里插入图片描述

07::04 条件or查询
db.集合.find({
   $or:[
      {"key1":"name1"},{"key2":"name2"}
   ]
})

db.yangzhenyu.find({
$or:[
{"name":"hello world!!!"}, {"age":"27"}
]
})

在这里插入图片描述

07::05 条件and 和 or 查询
db.集合.find({
   "key0":"name0",
   $or:[
      {"key1":"name1"},{"key2":"name2"}
   ]
})
相当于: key0=name0 and (key1=name1 or key2=name2)
db.yangzhenyu.find({
"age":"27",
$or:[
{"name":"hello world!!!"}, {"age":"27"}
]
})

在这里插入图片描述

07::06 条件操作符查询
>大于$gt
<小于$lt
>=大于等于$gte
<=小于等于$lte
!=不等于$ne
db.yangzhenyu.find({
"age":{$gt:"26"}

});

在这里插入图片描述

07::07 模糊查询
db.集合.find({"字段":/查询内容/});

// 模糊查询-包含2
db.yangzhenyu.find({
"age":/2/
});

在这里插入图片描述

// 模糊查询-以2开头
db.yangzhenyu.find({
"age":/^2/
});

在这里插入图片描述

//模糊查询-小写kul
db.yangzhenyu.find({
"yyy":/kul/
});

在这里插入图片描述

//模糊查询-忽略大小写
db.yangzhenyu.find({
"yyy":/kul/i
});

在这里插入图片描述

07::08 $type 操作符查询
$type操作符是基于BSON类型来检索集合中匹配的数据类型,并返回结果
准备:
创建集合typeTest,并插入两条数据
db.typeTest.insert({"name":"yangzhenyu","age":"27"});
db.typeTest.insert({"name":"yangzhenyu","age":27});
查询:
db.typeTest.find();

在这里插入图片描述

查询age字段为String的数据
db.yzyTest.find({"age":{
$type:'string'
}});

在这里插入图片描述

查询age字段为int的数据
db.typeTest.find({"age":{
$type:'int'
}});

在这里插入图片描述

07::09 去重某列重复数据查询
db.yangzhenyu.find();

在这里插入图片描述

age字段 去重查询:
db.yangzhenyu.distinct("age");

在这里插入图片描述

07::10、in、not in 查询
in查询:
db.集合.find({
_id:{$in:["no1","no2"]}
});
not in 查询
db.集合.find({
_id:{$nin:["no1"]}
});
07::11 指定字段返回
db.yzy.find({},{name:1});
db.集合.find(
query,
projection
)
projection: 指定返回字段
格式: {字段1:1,字段2:1}

在这里插入图片描述

08、排序

08::01、升序
查询集合.sort({字段名:1})
db.yangzhenyu.find().sort({age:1})

在这里插入图片描述

08::02、降序
查询集合.sort({字段名:-1})
db.yangzhenyu.find().sort({age:-1})

在这里插入图片描述

09、查询前3条数据

查询集合.limit(3);
db.yangzhenyu.find().limit(3);

在这里插入图片描述

10、查询3条以后数据

查询集合.skip(3);
db.yangzhenyu.find().skip(3);

在这里插入图片描述

11、分页

查询集合.limit(pagesize).skip(第几页的pagesize);
//limit相当于pagesize skip相当于第几页的pagesize
1-3
db.yangzhenyu.find().limit(3).skip(0);

在这里插入图片描述

3-6
db.yangzhenyu.find().limit(3).skip(3);

在这里插入图片描述

6-9
db.yangzhenyu.find().limit(3).skip(6);

在这里插入图片描述
相当于mysql的limit函数

12、查询当前集合总数

查询集合.count();
db.yangzhenyu.find().count();

在这里插入图片描述

13、删除当前数据库

db.dropDatabase();

14、新建集合

//创建固定集合
db.createCollection("yzyTest",{
capped:true,size:6142800,max:1000

});
capped - 如果为true,则创建固定集合。固定集合是指有着固定大小的集合,当达到最大值,会自动覆盖最早的文档,当值为true时,必须指定size参数。
size - 为固定集合指定一个最大值,即字节数。
max - 指定固定集合中包含文档的最大数量。
注:在插入文档时,mongoDB首先检查固定集合的size字段,然后检查max字段。
//查看已有集合
show collections;

在这里插入图片描述

//在mongoDB中,不需要主动创建,当你插入文档时会自动创建
db.yzyTest1.insert({"name":"yangzhenyu","age":"27"})
//查看已有集合
show collections;

在这里插入图片描述

15、删除集合

db.集合.drop();
db.yzyTest1.drop();
//查看已有集合
show collections;

在这里插入图片描述

16、获取当前db指定名称的聚集集合

db.getCollection("yzyTest");

在这里插入图片描述

17、获取当前db所有聚集集合

db.getCollectionNames();

在这里插入图片描述

18、查询当前集合数量

db.yzyTest.count();

在这里插入图片描述

19、查询当前集合的数据空间大小

db.yzyTest.dataSize();

在这里插入图片描述

20、查询当前集合总大小

db.yzyTest.totalSize();

在这里插入图片描述

21、查询当前集合存储空间大小

db.yzyTest.storageSize();

在这里插入图片描述

22、集合重命名

db.yzyTest.renameCollection("yzyRenameTest");

在这里插入图片描述

show collections;

在这里插入图片描述

23、查询当前集合所在数据库

db.yzyRenameTest.getDB();

在这里插入图片描述

24、插入语法

//插入一条数据
db.集合.insertOne({_id:"01",name:"yang",age:"12"});
//插入多条
db.集合.insertMany([{_id:"02",name:"yang",age:"12"},{_id:"03",name:"yang",age:"12"}])

25、修改

25::01、修改集合中现有的文档
db.集合.update(
  <query>,
  <update>
)
query  :update的查询条件,即where后的语句条件;
update  : 更新值,也可理解为sql update中set后面的语句;
注:默认只更新找到的第一条;

例子:
db.yzy.find();

在这里插入图片描述

//只更新找到的第一条
db.yzy.update({age:"12"},{$set:{age:"13"}});
db.yzy.find();

在这里插入图片描述

25::02、根据过滤器更新集合中的单个文档

实例:
db.yzy.find();
在这里插入图片描述

db.yzy.updateOne({age:"12"},{$set:{age:"13"}});
db.yzy.find();

在这里插入图片描述

25::03、更新与集合指定的筛选器匹配的所有文档
db.yzy.find();

在这里插入图片描述

db.yzy.updateMany({age:"12"},{$set:{age:"13"}});
db.yzy.find();

在这里插入图片描述

26、删除

从集合中删除单个文档
db.yzy.deleteOne({age:"13"})

在这里插入图片描述

从集合中删除与筛选器匹配的所有文档
db.yzy.deleteMany({age:"13"})

在这里插入图片描述

27、for循环

db.yzy.find().forEach(
    function(item){
        if(item.age >= 12){
           db.yzy.updateOne({age:item.age},{$set:{age:"13"}});
        }
    }
)

28、新建普通,复合,唯一索引、查询,删除索引

//查询当前db所有聚集索引
db.printCollectionStats();
//创建普通索引
//db.集合.ensureIndex({字段名:1}) 1表示升序、-1表示降序 升序、降序对单索引没有影响,对复合索引有影响
db.yzy.ensureIndex({"name":1});

//创建复合索引
//db.集合.ensureIndex({字段1名:1,字段2名:1})
db.yzy.ensureIndex({"name":1,"age":1});

//创建唯一索引
//db.集合.ensureIndex({字段名:1}) 1表示升序、-1表示降序
db.yzy.ensureIndex({"age":1},{"unique":true});

//删除索引
//db.集合.dropIndex({字段名:1});
db.yzy.dropIndex({"name":1});

//查询当前集合所有索引
//db.集合.getIndexes()
db.yzy.getIndexes();

29、添加用户

db.createUser( {
	user: "sa",
	pwd: "sa",
	roles: [ { role: "root", db: "admin" } ]
});
  • 19
    点赞
  • 85
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
MongoDB的查询语法是使用JSON格式的文档来进行查询的。以下是一些常见的查询语法: 1. 等于操作符($eq):{field: {$eq: value}},用于查询字段等于某个值的文档。 2. 不等于操作符($ne):{field: {$ne: value}},用于查询字段不等于某个值的文档。 3. 大于操作符($gt):{field: {$gt: value}},用于查询字段大于某个值的文档。 4. 大于等于操作符($gte):{field: {$gte: value}},用于查询字段大于等于某个值的文档。 5. 小于操作符($lt):{field: {$lt: value}},用于查询字段小于某个值的文档。 6. 小于等于操作符($lte):{field: {$lte: value}},用于查询字段小于等于某个值的文档。 7. 包含操作符($in):{field: {$in: [value1, value2, ...]}},用于查询字段值在某个列表中的文档。 8. 不包含操作符($nin):{field: {$nin: [value1, value2, ...]}},用于查询字段值不在某个列表中的文档。 9. 匹配操作符($regex):{field: {$regex: pattern}},用于查询字段值符合某个正则表达式的文档。 10. 逻辑与操作符($and):{ $and: [{field1: value1}, {field2: value2}] },用于查询多个条件都满足的文档。 11. 逻辑或操作符($or):{ $or: [{field1: value1}, {field2: value2}] },用于查询满足任意一个条件的文档。 12. 排序操作符(sort):{ field: 1 },用于按照某个字段升序排序;{ field: -1 },用于按照某个字段降序排序。 以上是MongoDB的一些常见查询语法,还有其他更复杂的查询语法,具体可以参考官方文档。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

栗子~~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值