创建数据库:
> use userinfo
数据库删除:
db.dropDatabase()
> show dbs # 显示当前系统中的所有数据库
> use userinfo # 转到userinfo数据库
switched to db userinfo
> db.dropDatabase()
{"dropped":"userinfo","ok":1}
> show dbs
创建集合:
语法:db.createCollection(name,options)
参数描述:
name:创建的集合名称
options:是一个作为初始化的文档(可选)
> db.createCollection("userinfo") #无参数
{ "ok" : 1 }
> show collections
userinfo
system.indexes
> db.createCollection("zhongrun", { capped : 1, autoIndexId : 1, size : 6142800, max : 10000 } ) #带参数
{ "ok ": 1 }
参数描述:
capped:类型为 Boolean,如果为 true 则创建一个固定大小的集合,当其条目达到最大时可以自动覆盖以前的条目。在设置其为 true 时也要指定参数大小;
autoIndexId:类型为 Boolean,默认为 false,如果设置为 true,则会在 _id 字段上自动创建索引;
size:如果 capped 为 true 则需要指定,指定参数的最大值,单位为 byte;
max:指定最大的文档数。
在 Mongodb 中也可以不用创建集合,因为在创建文档的时候也会自动的创建集合。
删除集合:
基础语法结构:db.COLLECTION.drop()
> db.userinfo.drop()
注意:当您要删除指定的集合时,用您想要删除的集合名称替代 COLLECTION 即可。
文档插入:
> userdoc1=({"user_id":1,"name":"cloud","state":"active","actor":"user","e-mail":"test@qq.com","VM_num":2,"time":[{"date":"2020-02-12","hour":"10:53 PM"}] })
> userdoc2=({"user_id":2,"name":"testadmin","state":"active","actor":"admin","e-mail":"test@qq.com","VM_num":2,"time":[{"date":"2020-02-12","hour":"06:34 AM"}] })
> doc1=({"name":"peter","position":"teacher"}) #先定义文档
> use userinfo
switched to db userinfo
> db.zhongrun.insert(userdoc1)
WriteResult({"nInserted":1})
> db.zhongrun.insert(userdoc2)
WriteResult({"nInserted":1})
> db.zhongrun.insert(doc1)
WriteResult({"nInserted":1})
插入文档成功,当然也可以直接将文档的内容作为函数的参数直接替代 document。
文档更新:
db.COLLECTION_NAME.update(SELECTION_CRITERIA,UPDATED_DATA)
操作实例:
> db.zhongrun.update({"user_id":2,"e-mail":"test@qq.com"},{$set:{"e-mail":"group@qq.com"}})
WriteResult({"nMatched":1,"nUpserted":1,"nModified":1})
> db.zhongrun.find()
Explain:
将 user_id=2 的文档的 e-mail 改为 group@qq.com 第一个大括号内容标示查找条件,第二个大括号内容则表示更新后的数据 默认的 update 函数只对一个文档更新,如果想作用所有文档,则需要加入 multi:true
文档替换:
> db.zhongrun.save({"_id":ObjectId("53ea174ccb4c62646d9544f4"),"name":"Bob","position":"techer"})
WriteResult({"nMatched":1,"nUpserted":1,"nModified":1})
这里的 _id 对应的是要替换文档的 _id。跟 insert 差不多,但是 save 更好用。
文档删除:
基础语法结构:db.COLLECTION_NAME.remove(DELECTION_CRITERIA)
操作实例:
> db.zhongrun.remove({"name":"Bob"})
WriteResult({"nRemoved":1})
其实 remove 函数的参数跟 update 函数的第一个参数一样,相当于查找条件,注意,不要误删数据!建议类比RDBMS的逻辑删除来操作。
小节:
createCollection():创建集合
db.COLLECTION.drop():删除集合
db.COLLECTION_NAME.insert(document):插入文档
db.COLLECTION_NAME.update(SELECTION_CRITERIA,UPDATED_DATA):更新文档
db.COLLECTION_NAME.save({_id:ObjectId(),NEW_DATA}):替换已存在的文档
db.COLLECTION_NAME.remove(DELECTION_CRITERIA):删除文档