知识点
软件工具
相关文章
更多最近更新
更多MongoDB数据类型
2019-03-15 21:44|来源: 网络
MongoDB的文件存储格式为BSON,同JSON一样支持往其它文档对象和数组中再插入文档对象和数组,同时扩展了JSON的数据类型.与数据库打交道的那些应用。例如,JSON没有日期类型,这会使得处理本来简单的日期问题变得非常繁琐。只有一种数字类型,没法区分浮点数和整数,更不能区分32位和64位数字。也没有办法表示其他常用类型,如正则表达式或函数。
数据类型 | 描述 |
---|---|
String | 字符串。存储数据常用的数据类型。在 MongoDB 中,UTF-8 编码的字符串才是合法的。 |
Integer | 整型数值。用于存储数值。根据你所采用的服务器,可分为 32 位或 64 位。 32位整数 类型不可用。JavaScript仅支持64位浮点数,所以32位整数会被自动转换。 64位整数 不支持这个类型。shell会使用一个特殊的内嵌文档来显示64位整数, |
Boolean | 布尔值。用于存储布尔值(真/假)。 |
Double | 双精度浮点值。用于存储浮点值。 |
Array | 用于将数组或列表或多个值存储为一个键。 |
Timestamp | 时间戳。记录文档修改或添加的具体时间。 |
Object | 用于内嵌文档。 |
Null | 用于创建空值。表示空值或者不存在的字段。 {"x":null} |
Date | 日期时间。用 UNIX 时间格式来存储当前日期或时间。你可以指定自己的日期时间:创建 Date 对象,传入年月日信息。 |
Object ID | 对象 ID。用于创建文档的 ID。 |
Binary Data | 二进制数据。用于存储二进制数据。 |
Code | 代码类型。用于在文档中存储 JavaScript 代码。 |
Regular expression | 正则表达式类型。用于存储正则表达式。 |
关键类型说明:
1、ObjectId
ObjectId 类似唯一主键,可以很快的去生成和排序,包含 12 bytes,含义是:
MongoDB 中存储的文档必须有一个 _id 键。这个键的值可以是任何类型的,默认是个 ObjectId 对象
1、前 4 个字节表示创建 unix 时间戳,格林尼治时间 UTC 时间,比北京时间晚了 8 个小时
2、接下来的 3 个字节是机器标识码
3、紧接的两个字节由进程 id 组成 PID
4、最后三个字节是随机数
2、时间戳
BSON 有一个特殊的时间戳类型,与普通的日期类型不相关。时间戳值是一个 64 位的值。其中:在单个 mongod 实例中,时间戳值通常是唯一的。
1、前32位是一个 time_t 值【与Unix新纪元(1970年1月1日)相差的秒数】
2、后32位是在某秒中操作的一个递增的序数
3、日期
表示当前距离 Unix新纪元(1970年1月1日)的毫秒数。日期类型是有符号的, 负数表示 1970 年之前的日期。
相关问答
更多-
mongodb集群问题[2021-11-30]
1. 每一个启动的mongod都是实际存放数据的地方,都能作为别人的sharding 2. 分片部署需要一个mongos,起路由分发的作用;需要一个配置服务器和若干个分片服务器(都是mongod) 3. 单机的时候,应用连接的是mongod;分布式的时候,应用连接的是mongos。 最简单的分片部署是单个的配置服务器,一个config(即mongod),一个mongos,几个sharding(即mongod): -
何时使用MongoDB(When to use MongoDB)[2022-02-17]
但是,使用MongoDB,我可以将6个表取消规格化并将其平整为2个表/集合,并将我的查询最小化为可能只有1个查询 但是,您可以使用单个适当制作的SQL语句轻松向MySQL查询与单个博客文章相关的6个表格值得信息。 然而硬盘空间比CPU /服务器便宜。 如果性能和扩展性是重中之重,那么您将需要关注的是拥有足够的内存来适应主内存和足够的CPU内核来运行查询。 企业级RAID 10阵列是必需的,不要误解我的意思,但只要您的数据库软件(MongoDB或MySQL)需要扫描一个不适合主内存的索引,您将面临的是一个世界 ... -
尝试mongoose - npm install mongoose ,mongoose是mongodb的ODM。 API文档 - http://mongoosejs.com/ 官方文档中的简短示例: var mongoose = require('mongoose'); mongoose.connect('localhost', 'test'); var schema = mongoose.Schema({ name: 'string' }); var Cat = mongoose.model('Cat' ...
-
MongoDB where子句(MongoDB where clause)[2022-10-09]
db.users.find( { $or:[{ 'social.privacy': true },{'personal.privacy': true}] ) db.users.find( { $or:[{ 'social.privacy': true },{'personal.privacy': true}] ) -
ElasticSearch和MongoDB(ElasticSearch and MongoDB)[2022-03-09]
不需要每次集合更新时都不需要运行它。 根据config中的刷新间隔刷新索引,或者通过调用“_refresh”手动刷新索引 是的,支持分页,使用字段“从”,“大小”,“排序”排序查询请参阅 ElasticSearch分页和排序 是的,你可以在任何领域搜索,请参阅http://www.elasticsearch.org/guide/reference/query-dsl/query-string-query/ no you need not run that every time a collection ge ... -
获得使用MongoDB(Getting Use to MongoDB)[2022-03-07]
默认情况下,Mongo将其所有数据库文件存储在已配置的dbdir目录的根目录中。 如果希望Mongo为每个数据库创建单独的目录并将数据库文件放在其中,请查看directoryperdb配置选项。 如果尚未创建默认数据目录/data/db需要创建它。 你可以通过shell在Ubuntu中做到这一点: CTL+ALT+T出一个终端窗口: cd / sudo mkdir /data cd data sudo mkdir db 注意:您可能还需要更改您拥有的新目录的所有权: sudo chown your_use ... -
为什么Mongodb不能连接?(Why cannot Mongodb connect?)[2023-04-17]
从第一个终端 ./mongod --port 27017 从另一个 ./mongo --port 27017 假设在两个终端中你都在mongo可执行目录中。 根据需要更改端口。 另外ctrl + C不是问题,我总是用那个来关闭。 From first terminal ./mongod --port 27017 From another one ./mongo --port 27017 Assuming in both terminals you are in mongo executable di ... -
如何使用mongodb扩展(How to use mongodb extension)[2022-08-03]
下面是使用Manager API进行查询的正确方法。 它无权访问数据库对象。 http://php.net/manual/en/class.mongodb-driver-manager.php 这是一个例子 $connection = new MongoDB\Driver\Manager("mongodb://localhost:27017"); $id = new \MongoDB\BSON\ObjectId(SomeId); $filter = ['_id' => $id ... -
C#+ MongoDB - ObjectId,不使用MongoDB数据类型/属性(C# + MongoDB - ObjectId without using MongoDB DataTypes/Attributes)[2022-04-15]
选项1:坚持使用BsonId并使用Facade模式 [BsonId]属性是你用来表示_id属性应该链接到一个特定的属性。 没有办法解决这个问题(完全忽略你的crud操作中的_id,这似乎是一个糟糕的主意)。 所以,如果你想将你的“实体”对象从“数据层”中分离出来,那么就使用一个poco类。 - 使用poco课程替代记录。 该类仅用于数据存储:快速获取mongo数据的方法,以及与bson文档一起工作的绝佳选择。 - 在您的实体层上使用该poco类的门面 。 我不觉得重新发明轮子很有用,所以我通常会问我们的开发 ... -
本地Mongodb安全(Local Mongodb security)[2023-09-19]
每当我有一个mySQL或SQL Server数据库时,总是建议我远程运行它 相同或不同的服务器。 它们都不能保证您的安全问题 。 最大的问题是性能。 可扩展性。 水平扩展数据库服务器非常困难,但MongoDB的体系结构内置了对水平可伸缩性的支持 。 回到MongoDB安全性。 太多好的答案了。 这是相关链接: MongoDB安全概念 MongoDB安全教程 如何保护MongoDB实例? 提高MongoDB安全性的10个技巧 我使用不同的环境。 一个在我的本地机器上进行开发,一个在我的生产服务器上。 而MEA ...