mongodb的数据结构

MongoDB文档结构:

mongodb的数据结构为db -> collection -> data
db可以理解为关系数据库的数据库
collection可以理解为表
data为元素,即对象或文档(可以嵌套。。。)

 

与关系数据库的区别在于:
db和collection都不用创建,在对db和collection使用时mongodb会自动判断当前使用的db和collection是否存在,如果不存在会自动创建需要注意的是在use dbname; 并不会马上创建dbname, 直到往该库中插入数据时才会创建数据库,也意味着在调用use dbname; 后, 显示当前数据库show dbs; 并不会列出dbname.

同一个collection中data的格式不用一致,比如第一个元素可以是{name: "testuser"}, 第二个元素可以是{age: 14, sex: "female"}.

可以把mongodb的shell完全看成是一个javascript runtime, 语法和javascript几乎一样

例子:
>use testdb;  
>db.collection1.save({name: "shitou"});  
>db.collection1.save({name: "ccok", age: 24});  
>db.collection2.save({name: "shitou", sex: "male"});  
>db.collection1.find(); #返回数组  
{ "_id" : ObjectId("4be82d1bdc68b2484f57e441"), "name" : "shitou" }  
{ "_id" : ObjectId("4be82db9dc68b2484f57e442"), "name" : "ccok", "sex" : "male" }  
>db.collection1.find()[0];  
{ "_id" : ObjectId("4be82d1bdc68b2484f57e441"), "name" : "shitou" }  
 
>db.collection1.findOne({_id: ObjectId("4be82d1bdc68b2484f57e441")}) #返回一条记录  
{ "_id" : ObjectId("4be82d1bdc68b2484f57e441"), "name" : "shitou" } 

>use testdb;
>db.collection1.save({name: "shitou"});
>db.collection1.save({name: "ccok", age: 24});
>db.collection2.save({name: "shitou", sex: "male"});
>db.collection1.find(); #返回数组
{ "_id" : ObjectId("4be82d1bdc68b2484f57e441"), "name" : "shitou" }
{ "_id" : ObjectId("4be82db9dc68b2484f57e442"), "name" : "ccok", "sex" : "male" }
>db.collection1.find()[0];
{ "_id" : ObjectId("4be82d1bdc68b2484f57e441"), "name" : "shitou" }

>db.collection1.findOne({_id: ObjectId("4be82d1bdc68b2484f57e441")}) #返回一条记录
{ "_id" : ObjectId("4be82d1bdc68b2484f57e441"), "name" : "shitou" }

 

从上面可以看到一个collection中的数据结构不需要一致,但在实际使用和设计中每个collection中数据结构应该保持一致.

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值