【MongoDB详细使用教程】1、Mac安装MongoDB
【MongoDB详细使用教程】2、MongoDB基本操做
【MongoDB详细使用教程】3、高级查询
【MongoDB详细使用教程】4、python操做MongoDB
【MongoDB详细使用教程】5、MongoDB的数据库管理python
MongoDB常见类型 | 说明 |
---|---|
Object ID | 文档ID |
String | 字符串,最经常使用,必须是有效的UTF-8 |
Boolean | 存储一个布尔值,true或false |
Integer | 整数能够是32位或64位,这取决于服务器 |
Double | 存储浮点值 |
Arrays | 数组(js)或列表(python),多个值存储到一个键 |
Object | 用于嵌入式的文档,即一个值为一个文档 |
Null | 存储Null值 |
Timestamp | 时间戳 |
Date | 存储当前日期或时间的UNIX时间格式 |
命令 | 操做 |
---|---|
show dbs | 显示数据库列表 |
db | 显示当前数据库 |
use 数据库名 | 切换或建立数据(有则切换,无则建立) |
db.dropDatabase() | 删除当前所在数据库(D大写) |
注:sql
> 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 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
关系型数据库中,每一个库是由多张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
也叫文档操做json
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后面不能跟多行数据。数组
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个字节服务器
db.集合名.update({查询条件}, {修改后结果})
这里要注意,修改后结果就是整行的最终结果,而且只会修改一行,而不是全部匹配结果都修改。3d
能够经过多个字段查找
code
db.students.update({查找条件}, {$set:{"要修改的字段名1":修改后的值, "要修改的字段名2": "值2"}})
同时修改了连个字段的值,但一样只会修改一条记录htm
db.集合名.remove({查询条件}) db.集合名.remove({}) # 删除所有数据
会删除全部的匹配项