Python学习 Day51 MongoD的CRUD操作 02

MongoDB的CRUD操作

命令 描述
db.集合名.insert(docunment) 数据的添加
db.集合名.save(document) 如果数据存在就更新,不存在就添加
db.集合名.update(query,update,multi) query:查询条件,类似SQL语句update中的where部分 update:更新操作符,类似SQL语句update中的set部分 multi:可选,默认是false,表示只更新找到的第一条记录,值为true表示把满足条件的文档全部更新
db.集合名.remove(query) 删除数据,query为删除条件

一 、insert插入数据

创建数据库
在这里插入图片描述
命令行窗口插入数据
在这里插入图片描述
GUI窗口插入数据
在这里插入图片描述

批量插入数据

方式一
db.student.insert([{
    
    'name':'李四','gender':'女'},{
    
    'name':'王五','age':20},{
    
    'name':'承留','gender':'女'}])

在这里插入图片描述

方式二
for(i=20;i<=25;i++){
    
    db.student.insert({
    
    'name':'绮梦','age':i})}

在这里插入图片描述


二、 save插入数据

db.student.insert({
    
    '_id':1,'name':'marry'})

在这里插入图片描述

db.student.insert({
    
    '_id':1,'name':'lili'})

在这里插入图片描述

db.student.save({
    
    '_id':1,'name':'lili'})

在这里插入图片描述

insert与save的区别

  • 若集合中已有当前ID,则insert插入会报错,而save会执行更新操作
  • 如果集合中的没有当前ID,则save执行的是插入操作

三、 update更新数据

更新数据时,在待更新的字段后需要将原数据其他内容补齐,否则会丢失

db.student.update({
    
    'name':'marry'},{
    
    'age':25,'name':'marry','gender':'男'})

在这里插入图片描述
使用$set可以保留原数据,不用再次手动补充

db.student.update({
    
    'name':'李四'},{
    
    $set:{
    
    'age':20}})

在这里插入图片描述
第三个参数multi默认为false,只更新符合条件的第一条数据,若为true,将对符合条件的所有数据进行更新

db.student.update({
    
    'name':'李四'},{
    
    $set:{
    
    'age':25}},{
    
    'multi':true})

在这里插入图片描述

扫描二维码关注公众号,回复: 13276603 查看本文章

四、remove删除数据

将姓名为lili的学生数据全部删除

db.student.remove({
    
    'name':'lili'})

在这里插入图片描述
将符合条件的一条数据删除{‘justOne’:true}

db.student.remove({
    
    'name':'王五'},{
    
    'justOne':true})

在这里插入图片描述
清空集合:db.student.remove({})

db.student.remove({
    
    })

在这里插入图片描述


五、查询操作

MongoDB中的查询命令

命令 描述
db.集合名.find({条件文档}) 查找所有的匹配数据
db.集合名.findOne({条件文档}) 只返回匹配的第一个数据
db.集合名.find().limit(number) 用于读取指定数量的文档
db.集合名.find().skip(number) 用于跳过指定数量的文档
db.集合名.find().sort() 1为升序,-1为降序
db.集合名.find({条件}).count() 用于统计结果集中文档条数
db.集合名.distinct(field) 去重

MongoDB的比较符号

符号 含义 示例
$eq 等于 {‘age’:20}
$lt 小于 {‘age’:{’$lt’:20}}
$gt 大于 {‘age’:{’$gt’:20}}
$lte {‘age’:{’$lte’:20}}
$gte {‘age’:{’$gte’:20}}
$ne 不等于 {‘age’:{’$ne’:20}}
$in 在范围内 {‘age’:{’$in’:[20,23]}}
$nin 不在范围内 {‘age’:{’$nin’:[20,23]}}
$or {$or:[{},{}]}

(1)查询所有数据

db.student.find()

在这里插入图片描述
(2)查询匹配数据

db.student.find({
    
    'name':'张三'})

在这里插入图片描述
(3)返回匹配的第一条数据

db.student.findOne({
    
    'name':'绮梦'})

在这里插入图片描述
(4)等值查询:查询年龄为20的数据

db.student.find({
    
    'age':20})
或
db.student.find({
    
    'age':{
    
    '$eq':20}})

在这里插入图片描述
(5)非等值查询
查询年龄小于22的数据

db.student.find({
    
    'age':{
    
    '$lt':22}})

在这里插入图片描述
查询年龄小于(大于)等于22的数据

db.student.find({
    
    'age':{
    
    '$lte':22}})
或
db.student.find({
    
    'age':{
    
    '$gte':22}})

在这里插入图片描述
在这里插入图片描述
查询年龄在(不在)【20,23】范围内的数据

db.student.find({
    
    'age':{
    
    '$in':[20,23]}})
或
db.student.find({
    
    'age':{
    
    '$nin':[20,23]}})

在这里插入图片描述
在这里插入图片描述
查询年龄是20或名字是绮梦的数据

db.student.find({
    
    '$or':[{
    
    'age':20},{
    
    'name':'绮梦'}]})

在这里插入图片描述
(6)模糊查询
查询姓名中有“绮”字的数据

db.student.find({
    
    'name'://})
//或正则写法
db.student.find({
    
    'name':{
    
    $regex:'绮'}})

在这里插入图片描述
查询年龄大于20的数据

//JS写法
db.student.find({
    
    $where:function(){
    
    return this.age>20}})

在这里插入图片描述
(7)读取指定数量文档:查询前三条数据

db.student.find().limit(3)

在这里插入图片描述
(8)跳过指定数量文档:跳过3条再查3条(查询第四五六条数据)

db.student.find().limit(3).skip(3)

在这里插入图片描述
(9)排序:按年龄升序(降序)排列

//升序
db.student.find().sort({
    
    age:1})
//降序
db.student.find().sort({
    
    age:-1})

在这里插入图片描述
(10)统计数据条数
查询所有数据条数

db.student.find().count()

在这里插入图片描述
查询姓名是“绮梦”的数据个数

db.student.find({
    
    'name':'绮梦'}).count()

在这里插入图片描述
(11)去重
查询所有同学的年龄值

db.student.distinct('age')

在这里插入图片描述
(12)判断数据是否存在
查询有年龄列的数据

查询有(没有)年龄列的数据
// 有年龄  db.student.find({'age':{$exists:true}})
// 无年龄  db.student.find({'age':{$exists:false}})

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/ShengXIABai/article/details/116428077