在以往的关系型数据库(如Mysql),使用表和列来对数据进行存储,进行数据查询操作。但是这样有一个弊端就是 1. 多表查询会比较复杂。 2.对数据类型要求严格,如果需要加字段会稍微麻烦一些。
mongo 是以数组或者对象来对数据进行存储,并且还可以嵌套。
# 进入mongo
$ mongo
# 显示所有数据库
> show dbs
# 创建数据库 使用use 命令,
> use gmtest
switched to db gmtest
# 查看当前db
> db
gmtest
# 查看所有db,发现我们创建的并不显示,需要插入数据才可以
> db.gmtest.insert({"name":"菜鸟果果"})
WriteResult({ "nInserted" : 1 })
> show dbs
admin 0.000GB
config 0.000GB
gmtest 0.000GB #这条是我们刚新建的数据库
local 0.000GB
## 增加数据
> db.gmtest.insert({"name":"菜鸟果果2"})
WriteResult({ "nInserted" : 1 })
### 增加一条数据 insertOne
> db.gmtest.insertOne({"name":"菜鸟果果3"})
{
"acknowledged" : true,
"insertedId" : ObjectId("6170fcb3ced87b0c142a3ba2")
}
### 同时插入多条数据
> db.gmtest.insertMany([{"name":"菜鸟果果4"},{"name":"菜鸟果果5","age":67}])
{
"acknowledged" : true,
"insertedIds" : [
ObjectId("6170fcd8ced87b0c142a3ba3"),
ObjectId("6170fcd8ced87b0c142a3ba4")
]
}
## 查询数据
### 查询所有数据
> db.gmtest.find()
{ "_id" : ObjectId("6170e7d1ced87b0c142a3b9f"), "name" : "菜鸟果果" }
{ "_id" : ObjectId("6170e840ced87b0c142a3ba0"), "name" : "菜鸟果果2" }
{ "_id" : ObjectId("6170e8c8ced87b0c142a3ba1"), "name" : "菜鸟果果2" }
{ "_id" : ObjectId("6170fcb3ced87b0c142a3ba2"), "name" : "菜鸟果果3" }
{ "_id" : ObjectId("6170fcd8ced87b0c142a3ba3"), "name" : "菜鸟果果4" }
{ "_id" : ObjectId("6170fcd8ced87b0c142a3ba4"), "name" : "菜鸟果果5", "age" : 67 }
### 查询单条数据
> db.gmtest.findOne({"name":"菜鸟果果"})
{ "_id" : ObjectId("6170e7d1ced87b0c142a3b9f"), "name" : "菜鸟果果" }
### 多个where 进行查询 pretty: 返回数据更加美观,没啥大用
> db.gmtest.find({"name":"菜鸟果果5","age":67}).pretty()
{
"_id" : ObjectId("6170fcd8ced87b0c142a3ba4"),
"name" : "菜鸟果果5",
"age" : 67
}
### 字段存在查询
> db.gmtest.find({"score":{$exists:true}})
### 关于算术运算符(参考下图),查询age 小于80
> db.gmtest.find({"age":{$gt:80}})
{
"_id" : ObjectId("6170fcd8ced87b0c142a3ba4"),
"name" : "菜鸟果果5",
"age" : 67
}
### 更新数据 multi: true(更新所有数据), false(更新一条数据), 默认是false
> db.gmtest.update({'name':'菜鸟果果5'},{$set:{'age':96}},{multi:true})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
#### 只更新一条数据
> db.gmtest.update({'name':'菜鸟果果2'},{$set:{'score':96}},{multi:false})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.gmtest.find()
{ "_id" : ObjectId("6170e7d1ced87b0c142a3b9f"), "name" : "菜鸟果果" }
{ "_id" : ObjectId("6170e840ced87b0c142a3ba0"), "name" : "菜鸟果果2", "score" : 96 }
{ "_id" : ObjectId("6170e8c8ced87b0c142a3ba1"), "name" : "菜鸟果果2" }
{ "_id" : ObjectId("6170fcb3ced87b0c142a3ba2"), "name" : "菜鸟果果3" }
{ "_id" : ObjectId("6170fcd8ced87b0c142a3ba3"), "name" : "菜鸟果果4" }
### 删除文档
> db.gmtest.deleteMany({'score':{$lt:100}})
{ "acknowledged" : true, "deletedCount" : 1 }
我的博客即将同步至腾讯云开发者社区,邀请大家一同入驻:/developer/support-plan?invite_code=2xsv85l2ljoko