mongodb·初使用

返回主页
Wit
You are your time.
博客园首页新随笔联系订阅管理随笔 - 10 文章 - 0 评论 - 3 阅读 - 21112
【MongoDB详细使用教程】二、MongoDB基本操作
阅读目录

4.1、增
4.2、查
4.3、改
4.4、删
【MongoDB详细使用教程】一、Mac安装MongoDB
【MongoDB详细使用教程】二、MongoDB基本操作
【MongoDB详细使用教程】三、高级查询
【MongoDB详细使用教程】四、python操作MongoDB
【MongoDB详细使用教程】五、MongoDB的数据库管理

目录
1、数据类型
2、数据库操作
3、集合操作
4、数据操作
4.1、增
4.2、查
4.3、改
4.3.1、修改整行
4.3.2、修改指定字段的值
4.4、删
1、数据类型
MongoDB常见类型 说明
Object ID 文档ID
String 字符串,最常用,必须是有效的UTF-8
Boolean 存储一个布尔值,true或false
Integer 整数可以是32位或64位,这取决于服务器
Double 存储浮点值
Arrays 数组(js)或列表(python),多个值存储到一个键
Object 用于嵌入式的文档,即一个值为一个文档
Null 存储Null值
Timestamp 时间戳
Date 存储当前日期或时间的UNIX时间格式
2、数据库操作
命令 操作
show dbs 显示数据库列表
db 显示当前数据库
use 数据库名 切换或创建数据(有则切换,无则创建)
db.dropDatabase() 删除当前所在数据库(D大写)
注:

使用"show dbs"时,不显示空的数据库

use mymongo
switched to db mymongo

db
mymongo

show dbs # 创建后使用show dbs不会显示刚创建的数据库
admin 0.000GB
config 0.000GB
local 0.000GB

db
mymongo

db.mytest.insert({“name”:“chen”})
WriteResult({ “nInserted” : 1 })

show dbs
admin 0.000GB
config 0.000GB
local 0.000GB
mymongo 0.000GB # 插入一条数据后,就可以在show dbs中显示出来了
删除数据库前要切换到要删除的数据库,删除之后数据库内内容被清空,使用"show dbs"不显示,但是使用"db"命令的时候还会看到。
show dbs
admin 0.000GB
config 0.000GB
local 0.000GB
mymongo 0.000GB

db.dropDatabase()
{ “dropped” : “mymongo”, “ok” : 1 }

show dbs
admin 0.000GB
config 0.000GB
local 0.000GB
3、集合操作
关系型数据库中,每个库是由多张table组成,
而NoSQL中,每个库是由多个集合(collection)组成,相当于sql中的table,集合中以键值对(json、python.dict)的形式保存数据。

命令 操作
db.createCollection(集合名, [参数]) 创建集合(一般不用这种方式而是在插入数据时自动创建)
show collections/show tables 查看集合
db.集合名.drop() 删除集合

db.createCollection(“colletiontest”)
{ “ok” : 1 }

show collections
colletiontest
mytest

db.colletiontest.drop()
true

show collections
mytest
4、数据操作
也叫文档操作

回到顶部
4.1、增
db.集合名.insert({“键名1”:值1, “键名2”: 值2 …})

db.students.insert({“name”:“chen”,“age”:“18”, “grade”:“一年级”})
WriteResult({ “nInserted” : 1 })
db.students.insert({“name”:“wang”,“age”:“19”, “grade”:“二年级”})
WriteResult({ “nInserted” : 1 })
db.students.insert({“name”:“xu”,“age”:20, “grade”:“三年级”})
WriteResult({ “nInserted” : 1 })

一条insert语句只能插入一行数据,insert后面不能跟多行数据。

回到顶部
4.2、查
db.集合名.findOne() # 查询一行
db.集合名.find() # 查询全部
db.集合名.find().pretty() # 格式化打印

db.集合名.find({查找条件}) # 按条件查找

db.students.findOne()
{
“_id” : ObjectId(“5db63d020f98841018f7695f”),
“name” : “chen”,
“age” : “18”,
“grade” : “一年级”
}

db.students.find()
{ “_id” : ObjectId(“5db642b30f98841018f76965”), “name” : “chen”, “age” : “18”, “grade” : “一年级” }
{ “_id” : ObjectId(“5db642bc0f98841018f76966”), “name” : “wang”, “age” : “19”, “grade” : “二年级” }
{ “_id” : ObjectId(“5db653920f98841018f7696b”), “name” : “xu”, “age” : 20, “grade” : “三年级” }

db.students.find().pretty()
{
“_id” : ObjectId(“5db642b30f98841018f76965”),
“name” : “chen”,
“age” : “18”,
“grade” : “一年级”
}
{
“_id” : ObjectId(“5db642bc0f98841018f76966”),
“name” : “wang”,
“age” : “19”,
“grade” : “二年级”
}
{
“_id” : ObjectId(“5db653920f98841018f7696b”),
“name” : “xu”,
“age” : 20,
“grade” : “三年级”
}
db.students.find()
{ “_id” : ObjectId(“5db642b30f98841018f76965”), “name” : “chen”, “age” : “18”, “grade” : “一年级” }
{ “_id” : ObjectId(“5db642bc0f98841018f76966”), “name” : “wang”, “age” : “19”, “grade” : “二年级” }
{ “_id” : ObjectId(“5db653920f98841018f7696b”), “name” : “xu”, “age” : 20, “grade” : “三年级” }
{ “_id” : ObjectId(“5db654660f98841018f7696c”), “name” : “ma”, “age” : 20, “grade” : “二年级” }

db.students.find({“age”:20})
{ “_id” : ObjectId(“5db653920f98841018f7696b”), “name” : “xu”, “age” : 20, “grade” : “三年级” }
{ “_id” : ObjectId(“5db654660f98841018f7696c”), “name” : “ma”, “age” : 20, “grade” : “二年级” }
"_id"是mongoDB自动添加的主键.
十六进制,每两个字符为一个字节,共12个字节

前4个字节为当前时间戳
接下来3个字节为机器ID
再接下来2个是MongoDB的进程ID
最后是排序流水号
回到顶部
4.3、改
4.3.1、修改整行
db.集合名.update({查询条件}, {修改后结果})

这里要注意,修改后结果就是整行的最终结果,并且只会修改一行,而不是所有匹配结果都修改。

可以通过多个字段查找

4.3.2、修改指定字段的值
db.students.update({查找条件}, {$set:{“要修改的字段名1”:修改后的值, “要修改的字段名2”: “值2”}})

同时修改了连个字段的值,但同样只会修改一条记录

回到顶部
4.4、删
db.集合名.remove({查询条件})
db.集合名.remove({}) # 删除全部数据

会删除所有的匹配项

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值