【MongoDB数据类型】 𶔷

目录

  • 开始表演

    • 1. Object ID
    • 5. Double
    • 6. Arrays
    • 7. Object
    • 8. TimeStamp
    • 9. Date
    • 10. Null

原文: http://blog.gqylpy.com/gqy/352

"@(MongoDB数据类型)

在开始之前,我们先看看MongoDB有哪些数据类型
*
1. Object ID**
Documents(行)自动生成的 _id

2. String
字符串,必须是UTF-8

3. Boolean
布尔值,true/false

4. Integer
整数,有int32与int64之分,一般我们使用int32(正负21亿)

5. Double
浮点数MongoDB中没有float类型,所有小数都是Double类型

6. Arrays
数组/列表,一般在多个值对应一个键时使用

7. Object
相当于Python中的dict

8. TimeStamp
时间戳

9. Date
存储当前日期或时间,unix时间格式
我们一般不使用这个Date类型,时间戳可以秒杀一切时间类型

10. Null
空数据类型,一个特殊的概念,None Null

开始表演

一些比较好理解的数据类型,我们就直接跳过。

1. Object ID

> db.userinfo.findOne()
{ "_id" : ObjectId("5c20a72d844443be585559a4"), "name" : "张三" }

**"_id" : ObjectId("5c20a72d844443be585559a4")**

这是MongoDB生成的类似关系型DB表主键的唯一key,具体由24个字节组成:

"5c20a72d" 时间戳,产生这条数据的时间

"844443" 产生这条数据的机器编码

"be58" 进程ID,多进程存储数据时很有用

"5559a4" 计数器,注意:计数器的数字可能会重复

以上四种标示拼凑成世界上唯一的Object ID

只要是支持MongoDB的语言,都会有一个或多个方法对Object ID进行转换

??注意:此类型不可以被JSON序列化

5. Double

> db.userinfo.find()
{ "_id" : ObjectId("5c20a72d844443be585559a4"), "name" : "张三", "height" : 1.82 }

MongoDB中没有float类型,所有的小数是都Double类型.

6. Arrays

{
    "_id" : ObjectId("5c20a72d844443be585559a4"),
    "name" : "张三",
    "height" : 1.82,
    "hobby" : [
        "抽烟",
        "喝酒",
        "汤头"
    ]  ??
}

数组/列表,一般在多个值对应一个键时使用.

7. Object

> db.userinfo.findOne({name: "李四"})
{
    "_id" : ObjectId("5c20ad9a844443be585559a5"),
    "name" : "李四",
    "info" : {
        "gender" : "男",
        "height" : 1.82,
        "weight" : 60
    }  ??
}

相当于Python中的dict

8. TimeStamp

> db.userinfo.insertOne({name: "张三", timestamp: Timestamp()})

> db.userinfo.findOne({name: "张三"})
{
    "_id" : ObjectId("5c20c48312af10035a00d668"),
    "name" : "张三",
    "timestamp" : Timestamp(1545651331, 1)  # 时间戳
}

9. Date

Date() 人类可识别的时间格式

> db.userinfo.insertOne({name: "李四", date: Date()})

> db.userinfo.findOne({name: "李四"})
{
    "_id" : ObjectId("5c20c53612af10035a00d669"),
    "name" : "李四",
    "date" : "Mon Dec 24 2018 19:38:30 GMT+0800 (CST)"  # 当前日期时间
}

new Date().valueOf() 转换为当前时间戳时间

> db.userinfo.insertOne({name: "李四", timestamp: new Date().valueOf()})

> db.userinfo.findOne({name: "李四"})
{
    "_id" : ObjectId("5c20c73412af10035a00d66e"),
    "name" : "李四",
    "timestamp" : 1545652020922  # 时间戳
}

new Date() 构建一个格林尼治时间
格林尼治时间和Date()时间相差8小时,我们是+8时区,也就是时差相差8,所以+8小时就是系统当前时间.

> db.userinfo.insertOne({name: "张三", new_data: new Date()})

> db.userinfo.findOne({name: "张三"})
{
    "_id" : ObjectId("5c20c87712af10035a00d66f"),
    "name" : "张三",
    "new_data" : ISODate("2018-12-24T11:52:23.256Z")  # 格林尼治时间
}

还有ISODate(),同样也是构建一个格林尼治时间

> ISODate()
ISODate("2018-12-24T11:59:14.740Z")

# 转换为时间戳
> ISODate().valueOf()
1545652789707

==MongoDB存储时间类型数据时,都是先将其转换为UTC时间,然后再存储到数据库中.==

10. Null

> db.userinfo.findOne({姓名: "王五"})
{ "_id" : ObjectId("5c20ae64844443be585559a6"), "name" : "王五", "hobby" : null }

空数据类型,一个特殊的概念, None Null.
"

原文: http://blog.gqylpy.com/gqy/352

原文地址:https://www.cnblogs.com/gqy02/p/11374425.html

时间: 2024-10-17 07:17:04

【MongoDB数据类型】 𶔷的相关文章

Mongodb 数据类型及Mongoose常用CURD【转载】

前言 看完了Node.js实战,其中在数据存储部分提到了Redis.Mongodb,我自己也根据书中的介绍写了几个简单的demo,在demo的过程首先遇到的问题就是数据类型和常见的CURD写法. mongodb的常见操作有两种方式,一个是直接使用API,也就相当于你在SQL Server客户端中使用T-SQL编写SQL语句来操作数据一样,其次就是在程序中使用mongoose驱动来操作数据,相当于我们在程序里用ADO.NET或EF来操作数据,如果你已经写了几个调用API的demo,那么我建议再回过

MongoDB数据类型

数据类型 基本数据类型 MongoDB的文件存储格式为BSON,同JSON一样支持往其它文档对象和数组中再插入文档对象和数组,同时扩展了JSON的数据类型.与数据库打交道的那些应用.例如,JSON没有日期类型,这会使得处理本来简单的日期问题变得非常繁琐.只有一种数字类型,没法区分浮点数和整数,更不能区分32位和64位数字.也没有办法表示其他常用类型,如正则表达式或函数. 下面是MongoDB的支持的数据类型: null    null用于表示空值或者不存在的字段. {"x":null}

MongoDB (七) MongoDB 数据类型

MongoDB支持许多数据类型的列表下面给出: String : 这是最常用的数据类型来存储数据.在MongoDB中的字符串必须是有效的UTF-8. Integer : 这种类型是用来存储一个数值.整数可以是32位或64位,这取决于您的服务器. Boolean : 此类型用于存储一个布尔值 (true/ false) . Double : 这种类型是用来存储浮点值. Min/ Max keys : 这种类型被用来对BSON元素的最低和最高值比较. Arrays : 使用此类型的数组或列表或多个值

MongoDB应用详解

mongodb是一个用来存储管理数据的软件 他是一个 c/s 架构的软件,是一个网络类型的软件如果要是使用mongodb的话,首先需要开启mongodb的服务端,然后通过客户端软件去连接服务器 1.要创建一个当前应用的数据库:database database - Excel table - Sheet1 - 区分存储相同类型的数据的集合 row - document - 一条记录 column - field - 列,字段 MongoDB 数据类型 下表为MongoDB中常用的几种数据类型.数

mongodb基本概念解析

MongoDB 概念解析 不管我们学习什么数据库都应该学习其中的基础概念,在mongodb中基本的概念是文档.集合.数据库,下面我们挨个介绍. 下表将帮助您更容易理解Mongo中的一些概念: SQL术语/概念 MongoDB术语/概念 解释/说明 database database 数据库 table collection 数据库表/集合 row document 数据记录行/文档 column field 数据字段/域 index index 索引 table joins   表连接,Mong

mongoDB 学习第二天

MongoDB 概念解析 不管我们学习什么数据库都应该学习其中的基础概念,在mongodb中基本的概念是文档.集合.数据库,下面我们挨个介绍. 下表将帮助您更容易理解Mongo中的一些概念: SQL术语/概念 MongoDB术语/概念 解释/说明 database database 数据库 table collection 数据库表/集合 row document 数据记录行/文档 column field 数据字段/域 index index 索引 table joins   表连接,Mong

mongoDB (mongoose、增删改查、聚合、索引、连接、备份与恢复、监控等等)

MongoDB - 简介 官网:https://www.mongodb.com/ MongoDB 是一个基于分布式文件存储的数据库,由 C++ 语言编写,旨在为 WEB 应用提供可扩展的高性能数据存储解决方案. MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的. MongoDB - 安装及运行 下载 07/05/2017 Current Stable Release (3.4.6) https://www.mongodb.com/dow

MongoDB基本shell操作

---------------------MongoDB基本操作--------------------- 1.MongoDB创建数据库 use 数据库名:切换到指定的数据库中,在插入第一个条数据的时候,创建对应的数据库. show dbs:显示所有的数据库名. db:查看当前数据库的名称. show collections:查看当前db所有的collections. db.集合名.insert({"name":"python"}):为指定的集合添加一条数据. 2.

MongoDB学习教程(1)

1.简介: MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统.在高负载的情况下,添加更多的节点,可以保证服务器性能.MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案. MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成.MongoDB 文档类似于 JSON 对象.字段值可以包含其他文档,数组及文档数组. 2.主要特点 MongoDB的提供了一个面向文档存储,操作起来比较简单和容易. 你可以在MongoDB记录中设置任