MongoDB学习(Shell)"/>
MongoDB学习(Shell)
MongoDB基础操作 (以下教程数据库名为:test 表名为:user)
添加数据库
use test #创建数据库
db.user.insert({"name":"test1"}) 为表user添加数据
需注意的是:如果在用了use之后,若无后续操作,其实该数据库并未被创建,只是存在缓存中
查看所有数据库
show dbs
给指定的数据库添加集合(表)并添加数据
db.user.insert({"name":"test1"}) 为表user添加数据
shell中不存在批量插入操作,若需要则需要通过for循环操作
查看数据库中所有的集合(表)
show collections
查询指定表的数据
db.user.finde() 查询所有
db.user.findeOne() 查询第一条数据
db.user.find({查询条件})
更新表中数据
db.user.update({查询条件},{结果值}) 直接将源数据覆盖(相当于MySQL中先删除 后插入的效果)
db.user.update({查询条件},{$set:{结果}}) 只将结果值用相同键的数据覆盖
相当于MySQL中的 set语句
例如:db.user.update({"name":"test1"},{"class":"软件工程"})
db.user.update({查询条件},{$set:{结果}},true,true)
第三个参数为true:若修改条件不存在,则将该结果插入
第四个参数为true:批量修改,若为false 则默认修改第一条数据
删除表的中数据
db.user.remove({条件})
若表的数据量巨大,删除结果可以用drop后 重新创建索引 效率会比remove快
删除表
db.user.drop()
删除数据库
db.dropDatabase()
shell中的help
里面有所有的shell可以完成的命令帮助
数据库相关的db.help()
集合相关的db.test.help()
例如有:db.dbgetName() 获取数据库名
mongoApi
api.mongodb
其他
数据和表命名规范
1、不能是空字符串
2、不得含有“” 空格 、 等特殊字符
3、应全为小写
4、最多64位
5、数据名不能与现有系统保留库同名,如admin、local、config
这样的集合也是不合法的
db-text但是不能通过db.[doucumentName]得到了 要改成db.getCollection(doucumentName) 因为db-text会被当成减法操作
MongoDB的shell内置JavaScript引擎可以直接执行js代码
function insert(object){db.getCollection("test").isert(object)
}
insert({name:"wuhah"})
shell也可以用eval
db.eval("retun 'mongodb' ")
MongoDB的客户端相当于一个JavaScript的引擎
Bson是JSON的扩展他先增加了诸如日期,浮点等JSON不支持的数据类型
类型 | 解释 |
---|---|
null | 用于表示空或者不存在的字段 |
布尔 | 两个数值true和false |
32位和64位整数 | shell中不支持 需要用到其他高级语言的驱动来完成JS不可使用 |
64位浮点 | shell中使用的数字其实全是这种类型{x:3.414} |
utf-8 | 字符串类型 |
对象ID | 内置默认ID对象 (_id:ObjectId()) |
日期 | {X:new Data()} |
正则 | {x:/uspcat/i} |
JavaScript代码块 | {x:function(){…}} |
underfined | 为定义类型 注意他和null不是一个类型 |
数组 | {gps:[20.56,43]} |
内嵌文档 | {x:{name:”test1”}} |
二进制 | 任意字节的字符串shell中是无法使用的 |
更多推荐
MongoDB学习(Shell)
发布评论