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插入数据

创建数据库
Python学习 Day51 MongoD的CRUD操作 02
命令行窗口插入数据
Python学习 Day51 MongoD的CRUD操作 02
GUI窗口插入数据
Python学习 Day51 MongoD的CRUD操作 02

批量插入数据

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

Python学习 Day51 MongoD的CRUD操作 02

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

Python学习 Day51 MongoD的CRUD操作 02


二、 save插入数据

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

Python学习 Day51 MongoD的CRUD操作 02

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

Python学习 Day51 MongoD的CRUD操作 02

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

Python学习 Day51 MongoD的CRUD操作 02

insert与save的区别

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

三、 update更新数据

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

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

Python学习 Day51 MongoD的CRUD操作 02
使用$set可以保留原数据,不用再次手动补充

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

Python学习 Day51 MongoD的CRUD操作 02
第三个参数multi默认为false,只更新符合条件的第一条数据,若为true,将对符合条件的所有数据进行更新

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

Python学习 Day51 MongoD的CRUD操作 02


四、remove删除数据

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

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

Python学习 Day51 MongoD的CRUD操作 02
将符合条件的一条数据删除{‘justOne’:true}

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

Python学习 Day51 MongoD的CRUD操作 02
清空集合:db.student.remove({})

db.student.remove({})

Python学习 Day51 MongoD的CRUD操作 02


五、查询操作

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()

Python学习 Day51 MongoD的CRUD操作 02
(2)查询匹配数据

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

Python学习 Day51 MongoD的CRUD操作 02
(3)返回匹配的第一条数据

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

Python学习 Day51 MongoD的CRUD操作 02
(4)等值查询:查询年龄为20的数据

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

Python学习 Day51 MongoD的CRUD操作 02
(5)非等值查询
查询年龄小于22的数据

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

Python学习 Day51 MongoD的CRUD操作 02
查询年龄小于(大于)等于22的数据

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

Python学习 Day51 MongoD的CRUD操作 02
Python学习 Day51 MongoD的CRUD操作 02
查询年龄在(不在)【20,23】范围内的数据

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

Python学习 Day51 MongoD的CRUD操作 02
Python学习 Day51 MongoD的CRUD操作 02
查询年龄是20或名字是绮梦的数据

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

Python学习 Day51 MongoD的CRUD操作 02
(6)模糊查询
查询姓名中有“绮”字的数据

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

Python学习 Day51 MongoD的CRUD操作 02
查询年龄大于20的数据

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

Python学习 Day51 MongoD的CRUD操作 02
(7)读取指定数量文档:查询前三条数据

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

Python学习 Day51 MongoD的CRUD操作 02
(8)跳过指定数量文档:跳过3条再查3条(查询第四五六条数据)

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

Python学习 Day51 MongoD的CRUD操作 02
(9)排序:按年龄升序(降序)排列

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

Python学习 Day51 MongoD的CRUD操作 02
(10)统计数据条数
查询所有数据条数

db.student.find().count()

Python学习 Day51 MongoD的CRUD操作 02
查询姓名是“绮梦”的数据个数

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

Python学习 Day51 MongoD的CRUD操作 02
(11)去重
查询所有同学的年龄值

db.student.distinct('age')

Python学习 Day51 MongoD的CRUD操作 02
(12)判断数据是否存在
查询有年龄列的数据

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

Python学习 Day51 MongoD的CRUD操作 02

上一篇:Ubuntu18.04下MongoDB的安装与卸载


下一篇:bash: ./mongod: cannot execute binary file