MongoDB_CRUD

写完这篇博客我发现这个博客网站的排版是最差的完全不支持md文档还没有代码块模式

列出所有数据库

不知大家还记得不记得关系型数据库的创建方法:create database  数据库名称

不过不管是关系型还是非关系型大体操作还是crud和权限一类的

如果大家在数据库的学习中遇到了报错,一定要联想自己学习的第一个数据库,我是学的MySQL,所以会联想一下这个数据库

show databases/show dbs

创建用户

db.createUser({"user":"用户名","pwd":"密码", roles:["权限"]})

账号密码登录

db.auth("用户名","密码")

创建数据库

不知大家还记得不记得关系型数据库的创建方法:

create database  数据库名称

不过不管是关系型还是非关系型大体操作还是crud和权限一类的

如果大家在数据库的学习中遇到了报错,一定要联想自己学习的第一个数据库,我是学的MySQL,所以会联想一下这个数据库

使用  use 数据库名  指令若数据库不存在则自动创建

修改密码

db.changeUserPassword("用户名","新的密码")

插入文档

db.集合名称.insert(文档)

列出所有的集合

show collections

创建集合

db.createCollection("name", "option")

删除集合

db.集合名.drop()

插入文档

db.stu.insert({name:"张三", age:"28", gender:true})

dict_data = {

    "_id" : 1,

    name: "王五",

    age: 55,

    gender:true

}

db.stu.insert(dict_data)

删除文档

删除集合中指定文档

db.stu.remove({name:"张三"})

删除集合中所有文档

db.集合名称.remove({})

修改文档

db.collection_name.update({select_conditional}, {$set:select_content})默认只修改符合条件第一条数据

db.collection_name.update({select_conditional}, {$set : select_content}, {mutil : true})全部修改

在newdb集合中创建文档

use newdb

switched to db newdb

> db.stu.insert({_id:1,name:"Janny",age:28,gender:true})

> db.stu.insert({_id:2,name:"Danny",age:8,gender:true})

> db.stu.insert({_id:3,name:"Jack",age:38,gender:true})

> db.stu.insert({_id:4,name:"Linus",age:18,gender:false})

> db.stu.insert({_id:5,name:"Jhon",age:18,gender:false})

> db.stu.insert({_id:6,name:"Mark",age:21,gender:true})

> db.stu.insert({_id:7,name:"Aorton",age:26,gender:false})

> db.stu.find()

{"_id":1,"name":"Janny","age":28,"gender":true}

{"_id":2,"name":"Danny","age":8,"gender":true}

{"_id":3,"name":"Jack","age":38,"gender":true}

{"_id":4,"name":"Linus","age":18,"gender":false}

{"_id":5,"name":"Jhon","age":18,"gender":false}

{"_id":6,"name":"Mark","age":21,"gender":true}

{"_id":7,"name":"Aorton","age":26,"gender":false}

修改id为2的名字为cccc

> db.stu.update({_id:2},{$set:{name:"cccccccccccc"}})

WriteResult({"nMatched":1,"nUpserted":0,"nModified":1})

> db.stu.find()

{"_id":1,"name":"Janny","age":28,"gender":true}

{"_id":2,"name":"cccccccccccc","age":8,"gender":true}

{"_id":3,"name":"Jack","age":38,"gender":true}

{"_id":4,"name":"Linus","age":18,"gender":false}

{"_id":5,"name":"Jhon","age":18,"gender":false}

{"_id":6,"name":"Mark","age":21,"gender":true}

{"_id":7,"name":"Aorton","age":26,"gender":false}

修改名字Aorton的年龄为15

> db.stu.update({name:"Aorton"},{$set:{age:15}})

WriteResult({"nMatched":1,"nUpserted":0,"nModified":1})

> db.stu.find()

{"_id":1,"name":"Janny","age":28,"gender":true}

{"_id":2,"name":"cccccccccccc","age":8,"gender":true}

{"_id":3,"name":"Jack","age":38,"gender":true}

{"_id":4,"name":"Linus","age":18,"gender":false}

{"_id":5,"name":"Jhon","age":18,"gender":false}

{"_id":6,"name":"Mark","age":21,"gender":true}

{"_id":7,"name":"Aorton","age":15,"gender":false}

修改gender:TRUE字段的年龄

默认只修改符合条件的第一条数据

db.stu.update({gender:true},{$set:{age:66}})

WriteResult({"nMatched":1,"nUpserted":0,"nModified":1})

> db.stu.find()

{"_id":1,"name":"Janny","age":66,"gender":true}

{"_id":2,"name":"cccccccccccc","age":8,"gender":true}

{"_id":3,"name":"Jack","age":38,"gender":true}

{"_id":4,"name":"Linus","age":18,"gender":false}

{"_id":5,"name":"Jhon","age":18,"gender":false}

{"_id":6,"name":"Mark","age":21,"gender":true}

{"_id":7,"name":"Aorton","age":15,"gender":false}

将gender:TRUE字段年龄全部修改

添加属性{multi:true}

db.stu.update({gender:true},{$set:{age:66}},{multi:true})

WriteResult({"nMatched":4,"nUpserted":0,"nModified":3})

> db.stu.find()

{"_id":1,"name":"Janny","age":66,"gender":true}

{"_id":2,"name":"cccccccccccc","age":66,"gender":true}

{"_id":3,"name":"Jack","age":66,"gender":true}

{"_id":4,"name":"Linus","age":18,"gender":false}

{"_id":5,"name":"Jhon","age":18,"gender":false}

{"_id":6,"name":"Mark","age":66,"gender":true}

{"_id":7,"name":"Aorton","age":15,"gender":false}

将id为1的gender字段删除

添加{$unset:{gender:""}}属性

db.stu.update({_id:1},{$unset:{gender:""}})

WriteResult({"nMatched":1,"nUpserted":0,"nModified":1})

> db.stu.find()

{"_id":1,"name":"Janny","age":66}

{"_id":2,"name":"cccccccccccc","age":66,"gender":true}

{"_id":3,"name":"Jack","age":66,"gender":true}

{"_id":4,"name":"Linus","age":18,"gender":false}

{"_id":5,"name":"Jhon","age":18,"gender":false}

{"_id":6,"name":"Mark","age":66,"gender":true}

{"_id":7,"name":"Aorton","age":15,"gender":false}

查询文档

查询全部

db.collection_name.find() 查询全部数据

db.collection_name.findOne(conditional)  查询符合条件的第一条数据

db.collection_name.find(coonditional) 查询符合条件的全部数据

> use newdb

switched to db newdb

> db.stu.find()

{"_id":1,"name":"Janny","age":66}

{"_id":2,"name":"cccccccccccc","age":66,"gender":true}

{"_id":3,"name":"Jack","age":66,"gender":true}

{"_id":4,"name":"Linus","age":18,"gender":false}

{"_id":5,"name":"Jhon","age":18,"gender":false}

{"_id":6,"name":"Mark","age":66,"gender":true}

{"_id":7,"name":"Aorton","age":15,"gender":false}

> db.stu,find({gender:false})

2021-03-04T17:13:17.099+0800E QUERY    [js] ReferenceError: findisnotdefined :

@(shell):1:8

> db.stu.find({gender:false})

{"_id":4,"name":"Linus","age":18,"gender":false}

{"_id":5,"name":"Jhon","age":18,"gender":false}

{"_id":7,"name":"Aorton","age":15,"gender":false}

> db.stu.findOne({gender:true})

{"_id":2,"name":"cccccccccccc","age":66,"gender":true}

比较运算符

$lt -->less than

$lte -->less than equal

$gt -->greater than

$gte -->greater than equal

$ne -->not equal

> db.stu.find()

{"_id":1,"name":"Janny","age":66}

{"_id":2,"name":"cccccccccccc","age":66,"gender":true}

{"_id":3,"name":"Jack","age":66,"gender":true}

{"_id":4,"name":"Linus","age":18,"gender":false}

{"_id":5,"name":"Jhon","age":18,"gender":false}

{"_id":6,"name":"Mark","age":66,"gender":true}

{"_id":7,"name":"Aorton","age":15,"gender":false}

> db.stu.find({age:{$gt:18}})

{"_id":1,"name":"Janny","age":66}

{"_id":2,"name":"cccccccccccc","age":66,"gender":true}

{"_id":3,"name":"Jack","age":66,"gender":true}

{"_id":6,"name":"Mark","age":66,"gender":true}

>

> db.stu.find({age:{$lt:38}})

{"_id":4,"name":"Linus","age":18,"gender":false}

{"_id":5,"name":"Jhon","age":18,"gender":false}

{"_id":7,"name":"Aorton","age":15,"gender":false}

>

>

> db.stu.find({age:{$gte:18}})

{"_id":1,"name":"Janny","age":66}

{"_id":2,"name":"cccccccccccc","age":66,"gender":true}

{"_id":3,"name":"Jack","age":66,"gender":true}

{"_id":4,"name":"Linus","age":18,"gender":false}

{"_id":5,"name":"Jhon","age":18,"gender":false}

{"_id":6,"name":"Mark","age":66,"gender":true}

>

>

> db.stu.find({age:{$ne:18}})

{"_id":1,"name":"Janny","age":66}

{"_id":2,"name":"cccccccccccc","age":66,"gender":true}

{"_id":3,"name":"Jack","age":66,"gender":true}

{"_id":6,"name":"Mark","age":66,"gender":true}

{"_id":7,"name":"Aorton","age":15,"gender":false}

逻辑运算

and且的关系

默认就是且的关系(两者都有)

db.stu.find()

{"_id":1,"name":"Janny","age":28,"gender":true,"like":"狗"}

{"_id":2,"name":"Danny","age":8,"gender":true,"like":"猫"}

{"_id":3,"name":"Jack","age":38,"gender":true,"like":"鸡"}

{"_id":4,"name":"Linus","age":18,"gender":false,"like":"老鼠"}

{"_id":5,"name":"Jhon","age":18,"gender":false,"like":"狗"}

{"_id":6,"name":"Mark","age":21,"gender":true,"like":"鸡"}

{"_id":7,"name":"Aorton","age":26,"gender":false,"like":"猫"}

> db.stu.find({age:{$gt:18},gender:true})

{"_id":1,"name":"Janny","age":28,"gender":true,"like":"狗"}

{"_id":3,"name":"Jack","age":38,"gender":true,"like":"鸡"}

{"_id":6,"name":"Mark","age":21,"gender":true,"like":"鸡"}

>

>

> db.stu.find({$and:[{age:{$gt:18}},{gender:true}]})

{"_id":1,"name":"Janny","age":28,"gender":true,"like":"狗"}

{"_id":3,"name":"Jack","age":38,"gender":true,"like":"鸡"}

{"_id":6,"name":"Mark","age":21,"gender":true,"like":"鸡"}

or或者的关系

> db.stu.find({$or:[{gender:false},{age:{$lt:30}}]})

{"_id":1,"name":"Janny","age":28,"gender":true,"like":"狗"}

{"_id":2,"name":"Danny","age":8,"gender":true,"like":"猫"}

{"_id":4,"name":"Linus","age":18,"gender":false,"like":"老鼠"}

{"_id":5,"name":"Jhon","age":18,"gender":false,"like":"狗"}

{"_id":6,"name":"Mark","age":21,"gender":true,"like":"鸡"}

{"_id":7,"name":"Aorton","age":26,"gender":false,"like":"猫"}

混合使用

查找年龄小于28或者喜欢老鼠。gender:false

> db.stu.find({$and:[{$or:[{age:{$lt:28}},{like:"老鼠"}]},{gender:false}]})

{"_id":4,"name":"Linus","age":18,"gender":false,"like":"老鼠"}

{"_id":5,"name":"Jhon","age":18,"gender":false,"like":"狗"}

{"_id":7,"name":"Aorton","age":26,"gender":false,"like":"猫"}

范围运算

$in Operator

> db.stu.find({age:{$in:[38,18,21]}})

{"_id":3,"name":"Jack","age":38,"gender":true,"like":"鸡"}

{"_id":4,"name":"Linus","age":18,"gender":false,"like":"老鼠"}

{"_id":5,"name":"Jhon","age":18,"gender":false,"like":"狗"}

{"_id":6,"name":"Mark","age":21,"gender":true,"like":"鸡"}

正则表达式

$regex Operator

> db.stu.find({name:{$regex:"^L"}})

{ "_id" : 4, "name" : "Linus", "age" : 18, "gender" : false, "like" : "老鼠" }

>

> db.stu.find({name:/L/})

{ "_id" : 4, "name" : "Linus", "age" : 18, "gender" : false, "like" : "老鼠" }

调用JS代码

> db.stu.find({

... $where:function () {

... return this.age > 20

... }

... })

{ "_id" : 1, "name" : "Janny", "age" : 28, "gender" : true, "like" : "狗" }

{ "_id" : 3, "name" : "Jack", "age" : 38, "gender" : true, "like" : "鸡" }

{ "_id" : 6, "name" : "Mark", "age" : 21, "gender" : true, "like" : "鸡" }

{ "_id" : 7, "name" : "Aorton", "age" : 26, "gender" : false, "like" : "猫" }

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容