MongoDB基础操作

MongoDB的注意点:

(1)MongoDB数据库的命令:如果是单个单词组成,则默认小写;如果有多个单词组成,则第一个单词首字母小写,后面的单词首字母大写。如:db.dropDatabase()

(2)MongoDB数据库的命令参数:基本都是以字典键值对形式传递

(3)一个MongoDB里可以有多个 数据库(db),一个数据库里可以有多个 集合(collection),一个集合里可以有多个 文档(data),每个文档数据都是由 字典键值对 形式保存

(4)MongoDB里的数据库不需要单独创建,通过use切换即可,如果数据库中没有数据,数据库不会创建,当数据库中有数据,数据库才会被创建


MongoDB常用命令:

(1)启用服务端:sudo mongodb
(2)启动shell客户端:mongo
(3)查看所有数据库:show dbs
(4)切换指定数据库:use 数据库名
(5)查看当前所在数据库:db
(6)查看当前数据库的所有集合(类似于mysql的表):show collections
(7)查看当前数据库指定集合的所有数据:db.数据库名.find()
(8)删除当前集合:db.集合名称.drop()
(9)删除当前数据库:db.dropDatabase()
(10)以守护进程的方式运行MongoDB:sudo mongod --logpath=/data/db/mongodb.log --fork

增加数据

(1)直接insert一个文档

db.stu.insert({"_id": 1, "name": "诸葛亮", "age": 18})

(2)创建空文档data,再依次按字段赋值,最后insert

data = {}
data.name = "刘备"
data.age = 32
data._id = 2

db.stu.insert(data)

删除数据

(1)remove()默认删除所有符合条件的结果

db.stu.remove({"age":32})

(2)remove()添加第二个参数justOne: True 表示只删除第一个符合条件的结果

db.stu.remove({"age": 32,}, {justOne: True})

(3)remove()添加空的条件,则表示全部删除

db.stu.remove()

修改数据

(1)update() 接收两个参数,第一个参数表示匹配条件,第二个参数表示修改后的内容(默认将全部内容替换)

db.stu.update({age: 32}, {age: 44})

(2)增加一个设置$set, 不做全部替换,而是只换指定的字段

db.stu.update({age: 32}, {$set: {age: 44, hometown: "汉"}})

(3)uodata默认只匹配第一条符合条件的文档,可以通过添加第三个参数支持全部匹配

db.stu.update({age; 32}, {$set: {age: 44, hometown: "汉"}}, {multi: true})

(4)如果 _id 存在,则修改数据

db.stu.save({_id : 5, name : "黄忠", age : 55})

(5)如果 _id 不存在,则增加数据

db.stu.save({_id : 5, name : "黄忠", age : 55})

查询数据

(1)根据条件查询所有文档,不写条件则查询第一个文档信息

db.stu.find()

(2)根据条件查询第一个文档,不写条件则查询第一个文档信息

db.stu.findOne()

(3)比较运算符(主要用于数字比较)

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

默认是等于
大于:$gt
大于等于:$gte
小于:$lt
小于等于:$lte
不等于:$ne

(4)逻辑运算符(表示多个独立条件的逻辑关系)

# 表示两个独立条件的逻辑关系是 and 与
db.stu.find({$and : [{age : 18}, {hometown : "桃花岛"}]  })

# 表示两个独立条件的逻辑关系是 or 或
db.stu.find({$or : [{age : 18}, {hometown : "桃花岛"}]  })

(5)范围运算符(表示条件范围)

db.stu.find({age : {$in : [16, 18, 20]}, gender : false})

(6)正则表达式

# 用 // 表示正则表达式
db.stu.find({name : /^黄/})

# 用 $regex 修饰符表示正则表达式
db.stu.find({name : {$regex : "^黄"}})

# 用 $regex 修饰符表示正则表达式,也可以添加正则的选项(如忽略大小写)
db.stu.find({name : {$regex : "^Big", $options : "$i"}})

(7)自定义函数查询

# 迭代每一个文档并判断该文档的 hometown是否不等于 蒙古,如果条件成立则符合查询
db.stu.find({$where : function() {return this.hometown != "蒙古"} })
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值