mongo的使用

2021年2月25日 作者 陈益

一、DB操作
show dbs
use summer
db.dropDatabase()

use abc 我们刚创建的数据库 abc 并不在数据库的列表中, 要显示它,我们需要向 runoob 数据库插入一些数据。
db.abc.insert({"name":"summer"})

二、collection 操作

db.createCollection(name, options)
或者直接insert语句进行创建
options:
capped 布尔 (可选)如果为 true,则创建固定集合。固定集合是指有着固定大小的集合,当达到最大值时,它会自动覆盖最早的文档。当该值为 true 时,必须指定 size 参数。
autoIndexId 布尔 3.2 之后不再支持该参数。(可选)如为 true,自动在 _id 字段创建索引。默认为 false。
size 数值 (可选)为固定集合指定一个最大值,即字节数。如果 capped 为 true,也需要指定该字段。
max 数值 (可选)指定固定集合中包含文档的最大数量。

show collections 显示所有的collections
show collections 或 show tables 命令:
db.getCollectionNames()

db.getCollection("runoob") 获得到单个的集合信息

db.runoob.drop() //删除 runoob集合

col 插入数据

批量方式一
db.w3cschool.insertMany([{"a":"202101131726","b":{
"a1":"a1",
"b1":"b1"
}},{"a2":"202101131726","b2":{
"a12":"a12",
"b12":"b12"
}}])

批量方式二
db.w3cschool.insert([{"a":"202101131726","b":{
"a1":"a1",
"b1":"b1"
}},{"a2":"202101131726","b2":{
"a12":"a12",
"b12":"b12"
}}])

单个方式一
db.w3cschool.insert({"time":"202101131726"})
单个方式二
db.w3cschool.insertOne({"time":"202101131726"})

更新操作
db.collection.update( criteria, objNew, upsert, multi )
update()函数接受以下四个参数:
criteria : update的查询条件,类似sql update查询内where后面的。
objNew : update的对象和一些更新的操作符(如$,$inc…)等,也可以理解为sql update查询内set后面的
upsert : 这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
multi : mongodb默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。

db.w3cschool.update({‘time’:’202101131726′},{$set:{‘time’:’你好呀’,’name’:’summer’}},false,true)

操作符:

https://www.cnblogs.com/caswang/p/10650040.html

https://www.cnblogs.com/chen-lhx/p/6004623.html

$set:{‘time’:’你好呀’,’name’:’summer’}
$set 是指令,表示设置值,其中后面的time和name表示修改值,如果没有的话,那么新增该属性。

删除操作
db.collection.remove(

,

)
query :(可选)删除的文档的条件。
justOne : (可选)如果设为 true 或 1,则只删除一个文档。

db.w3cschool.remove({“time”:”202101131726″}) 删除符合条件的所有
db.w3cschool.remove({“time”:”你好呀”},true),删除符合条件一个

###修改
db.tmp.update({
‘A’:’A’,
‘age’:{
‘$type’:1
}
},{
‘$set’:{
‘A’:’A1′,
‘age’:NumberInt(10)
}
},{
multi:true
})

查询操作
db.COLLECTION_NAME.find()

find() 方法以非结构化的方式来显示所有文档。
如果你需要以易读的方式来读取数据,可以使用 pretty() 方法,语法格式如下:
>db.col.find().pretty()
pretty() 方法以格式化的方式来显示所有文档。这样格式就友好了

查询的时候的操作符需要注意了:
操作 格式 范例 RDBMS中的类似语句
等于 {:} db.col.find({“by”:”w3cschool”}).pretty() where by = ‘w3cschool’
小于 {:{$lt:}} db.col.find({“likes”:{$lt:50}}).pretty() where likes < 50 小于或等于 {:{$lte:}} db.col.find({“likes”:{$lte:50}}).pretty() where likes <= 50 大于 {:{$gt:}} db.col.find({“likes”:{$gt:50}}).pretty() where likes > 50
大于或等于 {:{$gte:}} db.col.find({“likes”:{$gte:50}}).pretty() where likes >= 50
不等于 {:{$ne:}} db.col.find({“likes”:{$ne:50}}).pretty()
db.集合.函数({字段:{$exists:true}})

db.doctorinfo.count({zxExtendKey:{$exists:true}})

$size
> db.phone.find()
{ “_id” : ObjectId(“5198e20220c9b0dc40419385”), “num” : [ 1, 2, 3 ] }
{ “_id” : ObjectId(“5198e21820c9b0dc40419386”), “num” : [ 4, 2, 3 ] }
{ “_id” : ObjectId(“5198e22120c9b0dc40419387”), “num” : [ 1, 2, 5 ] }
{ “_id” : ObjectId(“5198e51a20c9b0dc40419388”), “state” : 1 }
{ “_id” : ObjectId(“519969952b76790566165de2”), “num” : [ 2, 3 ] }

$where
> db.user.find()
{ “_id” : ObjectId(“5198c286c686eb50e2c843b2”), “name” : “user0”, “age” : 0 }
{ “_id” : ObjectId(“5198c286c686eb50e2c843b3”), “name” : “user1”, “age” : 1 }
{ “_id” : ObjectId(“5198c286c686eb50e2c843b4”), “name” : “user2”, “age” : 2 }
{ “_id” : ObjectId(“5198c286c686eb50e2c843b5”), “name” : “user3”, “age” : 3 }
{ “_id” : ObjectId(“5198c286c686eb50e2c843b6”), “name” : “user4”, “age” : 4 }
{ “_id” : ObjectId(“5198c286c686eb50e2c843b7”), “name” : “user5”, “age” : 5 }
{ “_id” : ObjectId(“5198c286c686eb50e2c843b8”), “name” : “user6”, “age” : 6 }
{ “_id” : ObjectId(“5198c286c686eb50e2c843b9”), “name” : “user7”, “age” : 7 }
{ “_id” : ObjectId(“5198c286c686eb50e2c843ba”), “name” : “user8”, “age” : 8 }
{ “_id” : ObjectId(“5198c286c686eb50e2c843bb”), “name” : “user9”, “age” : 9 }
{ “_id” : ObjectId(“5198c286c686eb50e2c843bc”), “name” : “user10”, “age” : 10 }
{ “_id” : ObjectId(“5198c3cac686eb50e2c843bd”), “name” : “user0”, “age” : 20 }
> db.user.find({$where:function(){return this.age == 3 || this.age == 4}})
{ “_id” : ObjectId(“5198c286c686eb50e2c843b5”), “name” : “user3”, “age” : 3 }
{ “_id” : ObjectId(“5198c286c686eb50e2c843b6”), “name” : “user4”, “age” : 4 }

$or $nor