mongo(一)DOCUMENT

MongoDB以BSON文档的方式存储数据记录,BSON是JSON文档的一种二进制显示,但是它比JSON包含更多的数据类型。

MongoDB文档结构:
MongoDB文档是由键值对组成并且具有以下结构:
{
field1: value1,
field2: value2,
field3: value3,

fieldN: valueN
}

MongoDB文档中键所对应的值可以是任何BSON支持的数据类型,包括其他的文档,数组,文档数组。

MongoDB文档中的键:
(1)字符串
(2)键名”_id”被保留用于主键,它的值在集合中必须是惟一的,不可改变的,除数组类型以处的任意类型数据。
(3)键的名称不能以$开始。
(4)键名不能包含”.”字符。
(5)键名不能包含空字符。

BSON文档可能包含许多同名的键,但是MongoDB不支持重名的键。如果需要处理含有许多同名键的文档,则需要自己实现。

由MongoDB内部进程创建的文档可能存在重复的键,但是对于已经存地用户文档,MongoDB的进程永远不会添加重的键。

MongoDB文档中键对应的值的限制:
对于含有索引的集合,被添加索引的键的值具有最大索引键长度限制。

MongoDB使用”.”的方式访问数组元素和内嵌的文档。

BSON文档最大限制16MB,以确保不占用太大内存或者传输时点用太多宽带。如果要存储文档大于16MB的文档,可以查看MongoDB
提供的GridFS API。

MongoDB保持文档中键的写操作顺序(2.6版本以后),除了以下两种情况:
(1)_id总是文档中的第一顺序键。
(2)更新包含重命名键名称可能导致文档中所有键的重新排序。

在Mongo中,以集合形式存储的文档都要求一个惟一的_id域(键)作为主键。如果一个已插入的文档遗漏了_id域,Mongo驱动会
自动生成一个ObjectId给_id域(同样适用于通过修改插入的upsert操作)。

_id域有以下行为与约束:
(1)默认情况下,在一个集合在创建时,MongoDB会在_id域上创建一个惟一索引。
(2)_id域总是文档的第一个域,如果服务器接收到的一个文档不是以_id开始的,那么,服务器会首先把_id挪到开始处。
(3)_id域的值可以是任何BSON数据类型的值,除了数组。

_id域通常存储的值:
(1)使用ObjectId.
(2)如果可能使用自然惟一标识符,这样节省了空间,也避免了额外的索引。
(3)生成一个自动增长的数字。
(4)在程序代码中生成UUID。为更有效的在集合中和_id域索引中存储UUID值,最好以BSON BinData类型存储。

文档过虑查询指定决定查询,更新和删除哪些记录的条件。可以通过field:value指定过滤条件。

可以通过以下方式给域指定索引
{field1:type1,field2:type2,…}
field为域名,type为索引类型

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值