[root@host51 ~]# mongo --host 192.168.4.51 --port 27051
MongoDB shell version v3.6.3
connecting to: mongodb://192.168.4.51:27051/
MongoDB server version: 3.6.3
> show dbs
admin 0.000GB
config 0.000GB
local 0.000GB
> use gamedb //没有库,就
switched to db gamedb
库管理命令: 查看 创建 切换 删除
– show dbs 查看已有的库
显示当前所在的库
– db
– use 库名 切换库,若库不存在的话 自动延时创建库
– show collections 或 show tables 查看库下已有的
集合
– db.dropDatabase()
删除当前所在的库
> db.dropDatabase() //删除当前库
{ "ok" : 1 }
库名命名规则:
• 数据库名可以是满足以下条件的任意 UTF-8 字符串。
– 不能是空字符串( "") 。
– 不得含有 ' ' (空格 ) 、 . 、 $ 、 / 、 \ 和 \0 ( 空字符 )
。
– 应全部小写。
– 最多 64 字节。
• 集合管理命令:查看 创建 删除
– show collections 或 show tables # 查看集合
> show tables
c1
– db. 集合名 .save({'',''})在时,创建并添加文档
# 创建集合,集合不存
> db.c1.save({name:"bob",email:"plj@tedu.cn"})
WriteResult({ "nInserted" : 1 })
• 插入记录
> db.c1.insert({name:"luly",class:"nsd1804"})
WriteResult({ "nInserted" : 1 })
> db.c1.find()
{ "_id" : ObjectId("5b61309332bc8e678acd6f3b"), "name" : "bob", "email" : "plj@tedu.cn" }
{ "_id" : ObjectId("5b614dab32bc8e678acd6f3c"), "name" : "luly", "class" : "nsd1804" }
– db. 集合名 .drop() # 删除集合
> db.c1.remove({name:"luly"})
WriteResult({ "nRemoved" : 1 })
> db.c1.find()
{ "_id" : ObjectId("5b61309332bc8e678acd6f3b"), "name" : "bob", "email" : "plj@tedu.cn" }
> show tables
c1
> db.c1.drop()
true
> show tables
库的管理命令 表的管理命令 文档的管理命令
mongodb 的数据类型:
字符 string/ 布尔 bool/ 空 null
• 字符串 string
– UTF-8 字符串都可以表示为字符串类型的数据
– {name:” 张三” } 或 { school:“tarena”}
> db.c2.save({name:"张三",school:"达外"})
WriteResult({ "nInserted" : 1 })
> db.c2.find()
{ "_id" : ObjectId("5b61513d32bc8e678acd6f3f"), "name" : "bob", "school" : "tarena" }
{ "_id" : ObjectId("5b61519132bc8e678acd6f40"), "name" : "zhangsan", "school" : "danei" }
{ "_id" : ObjectId("5b6151b132bc8e678acd6f41"), "name" : "张三", "school" : "达外" }
• 布尔 bool
– 布尔类型有两个值 true 和 false , {x:true}
> db.c2.save({name:"jack",school:"tarena",single:false})
WriteResult({ "nInserted" : 1 })
• 空 null
– 用于表示空值或者不存在的字段, {x:null}
> db.c2.save({name:"lilei";school:"tarena",single:false,pay:null})
> db.c2.find()
{ "_id" : ObjectId("5b61513d32bc8e678acd6f3f"), "name" : "bob", "school" : "tarena" }
{ "_id" : ObjectId("5b61519132bc8e678acd6f40"), "name" : "zhangsan", "school" : "danei" }
{ "_id" : ObjectId("5b6151b132bc8e678acd6f41"), "name" : "张三", "school" : "达外" }
{ "_id" : ObjectId("5b61526b32bc8e678acd6f42"), "name" : "jack", "school" : "tarena", "single" : false }
{ "_id" : ObjectId("5b6152ea32bc8e678acd6f43"), "name" : "lilei", "school" : "tarena", "single" : false, "pay" : null }
> db.c2.count();
5
数值 / 数组 array
• 数值
– shell 默认使用 64 为浮点型数值。 {x : 3.14} 或 {x : 3} 。
– NumberInt ( 4 字节整数) {x:NumberInt(3)}
> db.c2.save({name:"tom",xf:NumberInt(195.23)})
WriteResult({ "nInserted" : 1 })
> db.c2.find()
{ "_id" : ObjectId("5b61559c32bc8e678acd6f45"), "name" : "tom", "xf" : 195 }
– NumberLong ( 8 字节整数) {x:NumberLong(3)}
> db.c2.save({name:"tom",xf:NumberLong(4918)})
WriteResult({ "nInserted" : 1 })
> db.c2.find()
{ "_id" : ObjectId("5b61559c32bc8e678acd6f45"), "name" : "tom", "xf" : 195 }
{ "_id" : ObjectId("5b6155ef32bc8e678acd6f46"), "name" : "tom", "xf" : NumberLong(4918) }
> db.c2.save({name:"tom",xf:NumberLong(195.23)})
2018-08-01T14:41:17.761+0800 E QUERY [thread1] Error: number passed to NumberLong must be representable as an int64_t :
@(shell):1:27
• 数组 array
– 数据列表或数据集可以表示为数组
– {x : [“a“ ,“ b”,”c”]}
> db.c2.save({name:"xiaoqiang",like:["gril","eat","piao","sleep"]})
WriteResult({ "nInserted" : 1 })
代码 / 日期 / 对象
• 代码
– 查询和文档中可以包括任何 JavaScript 代码
– {x: function( ){}}
> db.c2.save(
... {
... name:"php",
... code:function(){},
... like:100000})
WriteResult({ "nInserted" : 1 })
• 日期
– 日期被存储为自新纪元依赖经过的毫秒数,不存储时区
– {x:new Date( )}
> db.c2.save({name:"kk",sr:Date()})
WriteResult({ "nInserted" : 1 })
> db.c2.find({name:"kk"})
{ "_id" : ObjectId("5b6159bd32bc8e678acd6f4a"), "name" : "kk", "sr" : "Wed Aug 01 2018 14:57:01 GMT+0800 (CST)" }
• 对象
– 对象 id 是一个 12 字节的字符串,是文档的唯一标识
– {x: ObjectId() }
> db.c2.save({name:"jj",stu_id:ObjectId(),class:"nsd1804"})
WriteResult({ "nInserted" : 1 })
> db.c2.find({name:"jj"})
{ "_id" : ObjectId("5b61590132bc8e678acd6f49"), "name" : "jj", "stu_id" : ObjectId("5b61590132bc8e678acd6f48"), "class" : "nsd1804" }
内嵌 / 正则表达式
• 内嵌
– 文档可以嵌套其他文档,被嵌套的文档作为值来处理
– {tarena: {address:“Beijing”,tel:“888888”,perso
n:”hanshaoyun”
– }}
> db.c2.save({tarena:{address:"beijing",tell:8888888,person:"harry"}})
WriteResult({ "nInserted" : 1 })
> db.c2.save({ywzd:{writer:"dmy",pay:68,vers:"v2"}})
WriteResult({ "nInserted" : 1 })
•
正则表达式
– 查询时,使用正则表达式作为限定条件
– {x:/ 正则表达式 /}
> db.c2.save({jbname:"shell",rcode:/.$/})
WriteResult({ "nInserted" : 1 })
> db.c2.find({jbname:"shell"})
{ "_id" : ObjectId("5b615f4832bc8e678acd6f4d"), "jbname" : "shell", "rcode" : /.$/ }
数据类型:
字符
数值 NumberInt NumberLong
布尔 ture false
空 null
数组 [值1,值2.....值n]
日期New Date()
正则 /正则表达式/
代码function()
对象ObjectId()
数据的导入
数据的导出
数据的备份