mongodb文档(mongodb文档的值只可以是字符串)
本篇文章给大家谈谈mongodb文档,以及mongodb文档的值只可以是字符串对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
MongoDB文档中字段是否有先后顺序之分
Mongodb中的文档是一种Key:Value对组成的Json字符串,按理说,字段的先后顺序是不应该影响到查询操作的。
我们简单做个实验,往集合中插入一条记录:
db.testcollection.insert({"apple":2, "banana":3});
这时候,我们通过以下两种方式查询都是一样的:
第一种方式:
db.testcollection.find({"apple":2,"banana":3})
第二种方式:
db.testcollection.find({"banana":3,"apple":2})
通过上面两种方式查询都可以查询出来结果,都是同一条记录。那是否就可笑橡以说明,字段顺序是没有区别的呢?别着急,我们再看友升笑一个例子。
比方我们在集合中插入了下面一条记录:
db.testcollection.insert({"type":"fruit", "detail":{"apple":2, "banana":3}});
此时我们和上面一样,采用两种方式进行查询:
第一种方式:
db.testcollection.find({"detail":{"apple":2,"banana":3}})
第二种方式:
db.testcollection.find({"detail":{"banana":3,"apple":2}})
从两种查询方式的结果来看,其实结果是不一样的,第一种方式查询到了结果,但是第二种方式是没有查询到结果的。从这个实例来看,就可以告诉我们,当我们在查询具有嵌套文档的集合中,还是要稍微注意一点的,否则很有可能就会出现上面的情况。
我们如何避免出现上面这样因为书写顺序而导致的查询结果不一样的情况呢?有个办法,那就是在查询时不要使用json字符串进行查询,在这种具有嵌套文档的集合中,可以使用点符号进行操作,我们采用下面两种方式进行查询。
第一种方式:
db.testcollection.find({"detail.apple":2,"detail.banana":3})
第二种方式:
db.testcollection.find({"detail.banana":3,"detail.apple":2})
通过结果可以知道,这两种方式查询出来的结果是一样的,由此可见,不管好含是对于简单的查询,还是对于具有嵌套文档的查询,不在查询字符串中对字段值使用Json串书写格式,而是使用点号进行嵌套引用查询才是比较合适的做法,可以防止因书写字段顺序和文档中的字段顺序不一样导致的查询错误。
[img]MongoDB批量操作文档(bulkWrite) --- 2022-04-03
本章介绍,通过销昌mongo shell,批量操作(bulkWrite)MongoDB文档数据。这里的批量操作不仅仅是前面章节提到的批量更新文档,MongoDB批量操作支持同时执行一批写操作,写操作包括:插入文档、更新文档、删除文档。
mongo shell通过db.collection.bulkWrite()函数执亏慧扒行批量操作。
批量操作支持下面写操作自由组合。
说明:
下面看一个综合里面,批量执行碧带一批文档写操作。
mongoDB-document
MongoDB 将数据记录存储为 BSON类型的 文档(document)。 BSON 是一种二进制数据类型,是json 的一种扩展, bson 支持了更多的数据类型。 下图就是一个document(文悉袭档) 示例:
document 的数据结构如下所示:由若干个字段-值对组成,其中字段的值可以是任何 BSON 数据类型 ,包括嵌入式数据结构如 其他文档、数组和文档数组等。
如下申明了一个mydoc 的文档,
字段(field)的命名都是由字符串组成
字段名称有以下几条限制:
对于不同的字段类型的存储操作,字段名称验证规则并不相同。下面总结了不同的插入和更新操作如空陆咐何处理以美元 ($) 为前缀的字段名称
修改非 $ 前缀的字段
修改非 $ 前缀的最外层字段,通过 literal 实现
使用管道创建一个名为spring2022的新集合,更新 $ 为前缀的 $term 字段
MongoDB 使用点符号来访问数组的元素和访问嵌入文档的字段
要通过从零开始的索引位置指定或访问数组的元素,请将数组名称与点 (.) 和从零开始的索引位置连接起来,并用引号引起来
示例:
要使用点表示法指定或访问嵌入文档的字段,请将嵌入文档名称与点 (.) 和字段名称斗纯连接起来,并用引号引起来
示例:
BSON 文档的最大大小为 16 兆字节
最大文档大小有助于确保单个文档不会使用过多的 RAM,或者在传输期间不会使用过多的带宽。为了存储大于最大大小的文档,MongoDB 提供了 GridFS API。
与 JavaScript 对象不同,BSON 文档中的字段是有序的
查询操作时字段顺序:
写操作时字段顺序
对于写入操作,MongoDB 保留文档字段的顺序,但以下情况除外:
在 MongoDB 中,存储在集合中的每个文档都需要一个唯一的 _id 字段作为主键。如果插入的文档省略了 _id 字段,MongoDB 驱动程序会自动为 _id 字段生成一个 ObjectId。 这也适用于通过带有 upsert: true 的更新操作插入的文档
_id 字段具有以下限制:
_id 字段常用值:
关于mongodb文档和mongodb文档的值只可以是字符串的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。