mongodb中数据库还没有值的时候是存在内存中的,当插入了集合才会持久化到磁盘中
mongodb自带的一些有特殊意义的库
admin:从权限的角度讲,这是一个root库,要是将一个用户添加到这个库,这个用户会自动承接所有数据库的权限。
一些特定的指令也只能从这个数据库运行,比如列出所有的数据库或者关闭所有数据库
local:这个数据库中的数据永远不会被复制,比如在部署集群的时候,集群见会有一些复制策略,而local数据库中的数据不会被复制config:
数据库操作
数据库创建和删除
switched to db database; --创建名为database的数据库 db.dropdatabase(); --删除当前使用的数据库
集合操作(mongodb表操作)
集合的创建
分为显示和隐式 显示:db.createCollection("collection"); --在当前使用数据库中创建名字为collection的集合 隐式:直接向数据库插入数据,数据库会根据自动创建集合并插入数据
集合的删除
db.集合名.drop --删除当前数据库中该名子的集合
文档的操作
文档的插入
db.comment.insert({"articleid":"100000","content":"今天天气真好,阳光明
媚","userid":"1001","nickname":"Rose","createdatetime":new Date(),"likenum":NumberInt(10),"state":null}) --插入文档
try {
db.comment.insertMany([
{"_id":"1","articleid":"100001","content":"我们不应该把清晨浪费在手机上,健康很重要,一杯温水幸福你我
他。","userid":"1002","nickname":"相忘于江湖","createdatetime":new Date("2019-08-
05T22:08:15.522Z"),"likenum":NumberInt(1000),"state":"1"},
{"_id":"2","articleid":"100001","content":"我夏天空腹喝凉开水,冬天喝温开水","userid":"1005","nickname":"伊人憔
悴","createdatetime":new Date("2019-08-05T23:58:51.485Z"),"likenum":NumberInt(888),"state":"1"},
{"_id":"3","articleid":"100001","content":"我一直喝凉开水,冬天夏天都喝。","userid":"1004","nickname":"杰克船
长","createdatetime":new Date("2019-08-06T01:05:06.321Z"),"likenum":NumberInt(666),"state":"1"},
{"_id":"4","articleid":"100001","content":"专家说不能空腹吃饭,影响健康。","userid":"1003","nickname":"凯
撒","createdatetime":new Date("2019-08-06T08:18:35.288Z"),"likenum":NumberInt(2000),"state":"1"},
{"_id":"5","articleid":"100001","content":"研究表明,刚烧开的水千万不能喝,因为烫
嘴。","userid":"1003","nickname":"凯撒","createdatetime":new Date("2019-08-
06T11:01:02.521Z"),"likenum":NumberInt(3000),"state":"1"}
]);
} catch (e) {
print (e);
} --批量插入,多条插入时可能会出现异常,会经常使用try/catch捕获,前面插入多个,其中有一个失败了,前面的不会回滚
文档的查询
db.集合名称.find() --查询所有
db.集合名称.find({userid:'1003'}) --单条件查询
db.集合名称.find( { $or : [ { userid : '1003' }, { sex : '男' } ] } ) --多条件查询,$or是或者的意思
db.集合名称.findOne({userid:'1003'}) --只显示第一条查询到的jsondb.集合名称.find({userid:"1003"},{userid:1,nickname:1,_id:0}) --投影查询(只显示部分字段),查询条件后面跟显示字段,1表示显示,0表示不显示