MongoDB 初识

tech2024-08-06  61

基本概念

mongodb是属于文档型的非关系型数据库 下图为sql术语与mongodb术语的对比:

windows 安装

具体安装步骤,请看这里:Windows 安装 MongoDB 4.4.0

基本操作

数据库操作

#查看当前所在的数据库,默认是test > db test #切换数据库(如果存在,直接切换。如果不存在,先创建,再切换) > use xxoo switched to db xxoo > db xxoo #查看所有的数据库 show dbs 或者 show databases > show dbs admin 0.000GB config 0.000GB local 0.000GB #可以看到,我们刚创建的数据库 xxoo 并不在数据库的列表中, 要显示它,我们需要向 xxoo 数据库插入一些数据。 > db.xxoocol.insert({name:"zhangsan",age:18}) WriteResult({ "nInserted" : 1 }) > show dbs admin 0.000GB config 0.000GB local 0.000GB xxoo 0.000GB #删除当前的数据库 > db.dropDatabase() { "dropped" : "xxoo", "ok" : 1 }

集合操作

相当于sql数据库的表操作

#创建集合 #可选参数 capped 是否为追加集合,size 集合的大小,max 最大的文档数量 db.createCollection("col1",{capped: true, size: 6142800, max: 1000}) #在一个不存在的集合插入数据也会创建 db.col2.insert({name:"zhangsan",age:18}) # 查看存在的集合 > show collections col1 col2 xxoocol #删除集合 > db.xxoocol.drop() true

文档操作

新增

#在col2集合中插入一个文档 db.col2.insert({name:"zhangsan",age:18}) #在col2集合中插入一个文档 db.col2.insertOne({name:"lisi",age:20}) #在col2集合中插入多个文档 db.col2.insertMany([ {name:"wangwu",age:22}, {name:"maliu",age:24} ])

查询

db.col2.find() #查看col2集合中所有文档 db.col2.find().pretty() #将查询结果格式化展示 db.col2.find().limit(2) # 查看前两条数据 db.col2.find().skip(2) # 跳过前两条数据 db.col2.find().sort({age: 1}) # 按照指定字段排序,1 升序,-1 降序 # g: great 大于 l: little 小于 e: euals 等于 n: not 不等于 db.col2.find({age:20}) # 相当于 where age = 20 db.col2.find({age:{$lt:20}}) # 相当于 where age < 20 db.col2.find({age:{$lte:20}}) # 相当于 where age <= 20 db.col2.find({age:{$gt:20}}) # 相当于 where age > 20 db.col2.find({age:{$gte:20}}) # 相当于 where age >= 20 db.col2.find({age:{$ne:20}}) # 相当于 where age != 20 # 与或 db.col2.find({name: "zhangsan", age: 18}) # 相当于 where name = "zhangsan" and age =18 db.col2.find({$or: [{name: "zhangsan"}, {name: "lisi"}]}) # 相当于 where name = "zhangsan" or name = "lisi" # 支持正则表达式 db.col2.find({name: /^zhang/}) #查询name字段以"zhang"开头的文档 db.col2.find({title:/wu$/}) #查询name字段以"wu"结尾的文档 db.col2.find({title:/wu$/}) #查询name字段包含"wu"的文档 # 根据类型 db.col2.find({name: {$type: "string"}}) 或 db.col2.find({name : {$type : 2}})

修改

db.col2.update({name: "zhangsan"},{$set: {name: "wangsan"}}) # 更新找到的文档,默认更新一条 db.col2.update({name: "zhangsan"},{$set: {name: "wangsan"}},{multi: true}) # 更新多条 db.col2.save({_id: ObjectId("5f4fd299ed329eb546375c10"), name: "zhaosi"}) # _id 存在则替换原有文档,若不存在则插入一条文档

删除

db.col2.remove({}) #清空col2集合中的数据 db.col2.remove({name: "lisi"}) # 删除找到的文档,默认删除多条 db.col2.remove({name: "wangsan"},{justOne: true}) # 删除一条

索引操作

db.col2.createIndex({name: 1}) # 给 name 创建一条索引,1 升序 -1 降序 db.col2.createIndex({name: 1, age: -1}) # 创建一条复合索引 # 可选参数 background 是否在后台创建索引,unique 是否为唯一索引,weights 该索引的权重 db.col2.createIndex({name: 1}, {background: true, unique: true, weights: 1}) db.col2.getIndexes() #查看集合索引 db.col2.totalIndexSize() #查看集合索引大小 db.col2.dropIndexes() #删除集合所有索引 db.col2.dropIndex("name") #删除名称为name索引
最新回复(0)