查看数据库
>show dbs
>show databases
查询出来后使用某个数据库
>use name
>use test
switched tu db test
>db
test (告诉当前数据库是 test)
(使用方法与mysql相同)
删除当前数据库
>db.dropDatabases()
{"dropped":"test","ok":1}
这条命令会把当前use的数据库删除
按TAB键命令自动补全
创建数据库直接
>use test1
switched tu db test1
当向数据库里插入数据时 show dadabases 就可以看见刚刚创建的表了
查看集合 (相当于关系型数据库里面,数据库里的表的概念)
>show collections
删除集合
>db.test.drop()
true
可存放的数据类型
- Object ID :文档id
- String :字符串
- Boolean : 存储的布尔值,true 或者 false
- Integer : 整数
- Double : 储存浮点型
- Arrays : 数组或列表,多个值存储到一个键
- Object :用于嵌入式文档,一个值为一个文档
- Null : 存储Null值
- Timestamp : 时间戳
- Data : 存储当前日期
注意:
创建日期语句
参数格式为 YYYY-MM-DD
new Data('2020-04-05')
每个文档里面都有一个属性,_id,保证文档的唯一性
_id可以自己设置(就像关系型数据库里的主键),如果没有设置Mongod里会为每一个文档提供一个独特的_id,类型为ObjectID
(每一个文档就相当一个json对象,对象里面还可以有多个json对象)
ObjectID是一个12字节的十六进制数:
前4个字节为当前时间戳
接下来3个字节为机器id
接下来2个字节为Mongodb的服务进程id
最后3个字节是简单的增量值
插入
>db.test1.insert({name:"xiaoming",age:10})
此时的数据增加了一个_id
>db.test1.insert({_id:10010,name:"xiaoming",age:10})
_id也可以自定义
这里的键值可打引号也可不打
查看
>db.test1.find()
保存
db.集合名称.save(document)
如果文档_id存在 它的作用可以是修改 如果不存在则是添加
db.集合名称.insert({}) 插入数据 , _id存在就会报错
db.集合名称.save({}) 插入数据 , _id存在就会更新
更新
db.集合名称.update()
>db.test1.update({name:"xiaoming"},{name:"xiaohong"})
把第一条name 为 "xiaoming" 的数据改为 "xiaohong"
有一个问题 如果老数据有多个值 会被覆盖为改变后的一个值
比如({name:"xiaoming",age:22})
就替换成了({name:"xiaohong"})
如果只想改变name (只修改其中某项指标,其他的不变)
db.集合名称.update({想改键值},{$set{新的键值}})
>db.test1.update({name:"xiaoming"},{$set{name:"xiaohong"}})
>db.test1.update({name:"xiaoming"},{$set{name:"xiaohong"}},{multi:true})
{multi:true}这样可以批量修改,默认情况{multi:false}
删除
>db.test1.remove({name:"xiaohong"},{justOne:true})
只删除一条{justOne:true}
>db.test1.remove({name:"xiaohong"})
批量删除,把name 为 "xiaohong" 的数据全部删除
注意默认情况{justOne:false}全部删除