【Python基础】mongodb数据类型是什么

2021-01-19 10:28发布

15条回答
梵梵
2楼 · 2021-01-19 11:18

.MongoDB 之 丰富多彩的数据类型世界

首先我们要先了解一下MongoDB中有什么样的数据类型:

Object  ID :Documents 自生成的 _id

String: 字符串,必须是utf-8

Boolean:布尔值,true 或者false (这里有坑哦~在我们大Python中 True False 首字母大写)

Integer:整数 (Int32 Int64 你们就知道有个Int就行了,一般我们用Int32)

Double:浮点数 (没有float类型,所有小数都是Double)

Arrays:数组或者列表,多个值存储到一个键 (list哦,大Python中的List哦)

Object:如果你学过Python的话,那么这个概念特别好理解,就是Python中的字典,这个数据类型就是字典

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

Timestamp:时间戳

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


我是大脸猫
3楼 · 2021-01-19 15:27

mongodb的数据类型

MongoDB的数据,在我们学习增删改查的时候就已经体现出来了;;

首先我们先了解一下MongoDB中有什么样的数据类型:

Object  ID :Documents 自生成的 _id

String: 字符串,必须是utf-8

Boolean:布尔值,true 或者false (这里有坑哦~在我们大Python中 True False 首字母大写)

Integer:整数 (Int32 Int64 你们就知道有个Int就行了,一般我们用Int32)

Double:浮点数 (没有float类型,所有小数都是Double)

Arrays:数组或者列表,多个值存储到一个键 (list哦,大Python中的List哦)

Object:如果你学过Python的话,那么这个概念特别好理解,就是Python中的字典,这个数据类型就是字典

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

Timestamp:时间戳

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

看着挺多的,但是真要是用的话,没那么复杂,很简单的哦

 1.Object ID :

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

0-8字节是时间戳,

9-14字节的机器标识符,表示MongoDB实例所在机器的不同;

15-18字节的进程id,表示相同机器的不同MongoDB进程。

19-24字节是计数器

 

注意::

这个类型是不可以被JSON序列化的

 2.String :

UTF-8字符串,记住是UTF-8字符串

 

 

3:Boolean :

这个自己手动设置判断条件,,,,布尔值首字母要小写ooo

 

4.Integer :整数

这个就是了,,整数 (Int32 Int64 知道有个Int就行了,一般我们用Int32)

 

5.Double :

一般可以用数字表示的信息都可以用浮点数哦...浮点数 (MongoDB中没有float类型,所有小数都是Double)

 

6.Arrays :

 

{
    "_id" : ObjectId("5b163830993ddc4cd4918ead"),
    "name" : "lie",
    "teacher" : [        "ellen",
        "seria",
        "color"
    ]
}

 数组或者列表,多个值存储到一个键 (list哦,大Python中的List哦、

 

 

 

7.Object :

复制代码

复制代码

{
    "_id" : ObjectId("5b163915993ddc4cd4918eaf"),
    "name" : "LuffyCity",
    "course" : {
        "name" : "Python",
        "price" : 19800
    }
}

复制代码

复制代码

如果你学过Python的话,那么这个概念特别好理解,就是Python中的字典,这个数据类型就是字典

 

8.Null :

复制代码

{
    "_id" : ObjectId("5b163a0e993ddc4cd4918eb0"),
    "name" : "LuffyCity",
    "course" : null
}

复制代码

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

 

9.Timestamp :时间戳

复制代码

{
    "_id" : ObjectId("5b163bbf993ddc4cd4918eb3"),
    "name" : "LuffyCity",
    "date" : 1528183743111
}

复制代码

 

10.Date :

 

复制代码

{
    "_id" : ObjectId("5b163ba1993ddc4cd4918eb2"),
    "name" : "LuffyCity",
    "date" : ISODate("2018-06-05T15:28:33.705+08:00")
}

复制代码

 存储当前日期或时间格式 (我们一般很少使用这个Date类型,因为时间戳可以秒杀一切时间类型)


小小邓
4楼 · 2021-01-19 15:52

MongoDB是一个基于分布式文件存储  的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。

MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。


无需指教
5楼 · 2021-01-20 09:04

在概念上,MongoDB的文档与JavaScript中的对象相近,因而可认为它类似于JSON。JSON(http://www.json.org)是一种简单的数据表示方式:其规范仅用一段文字就能描述清楚(其官网证明了这点),且仅包含6种数据类型。这样有很多好处:易于理解、易于解析、易于记忆。然而,从另一方面来说,因为只有null、布尔、数字、字符串、数组和对象这几种数据类型,所以JSON的表达能力有一定的局限。
虽然JSON具备的这些类型已具有很强的表现力,但绝大多数应用(尤其是在与数据库打交道时)都还需要其他一些重要的类型。例如,JSON没有日期类型,这使原本容易的日期处理变得烦人。另外,JSON只有一种数字类型,无法区分浮点数和整数,更别说区分32位和64位数字了。再者,JSON无法表示其他一些通用类型,如正则表达式或函数。
MongoDB在保留JSON基本键/值对特性的基础上,添加了其他一些数据类型。 在不同的编程语言下,这些类型的确切表示有些许差异。下面说明MongoDB支持的其他通用类型,以及如何在文档中使用它们。

null

null用于表示空值或者不存在的字段:

{"x" : null}

布尔型

布尔类型有两个值true和false:

{"x" : true}

数值

shell默认使用64位浮点型数值。因此,以下数值在shell中是很“正常”的:

{"x" : 3.14}

或:

{"x" : 3}

对于整型值,可使用NumberInt类(表示4字节带符号整数)或NumberLong类(表示8字符带符号整数),分别举例如下:

{"x" : NumberInt("3")}
{"x" : NumberLong("3")}

字符串

UTF-8字符串都可表示为字符串类型的数据:

{"x" : "foobar"}

日期

日期被存储为自新纪元以来经过的毫秒数,不存储时区:

{"x" : new Date()}

正则表达式

查询时,使用正则表达式作为限定条件,语法也与JavaScript的正则表达式语法相同:

{"x" : /foobar/i}

数组

数据列表或数据集可以表示为数组:

{"x" : ["a", "b", "c"]}

内嵌文档

文档可嵌套其他文档,被嵌套的文档作为父文档的值:

{"x" : {"foo" : "bar"}}

对象id

对象id是一个12字节的ID,是文档的唯一标识。详见2.6.5节。

{"x" : ObjectId()}

还有一些不那么常用,但可能有需要的类型,包括下面这些。

二进制数据

二进制数据是一个任意字节的字符串。它不能直接在shell中使用。如果要将非UTF-8字符保存到数据库中,二进制数据是唯一的方式。

代码

查询和文档中可以包括任意JavaScript代码:

{"x" : function() { /* ... */ }}

另外,有几种大多数情况下仅在内部使用(或被其他类型取代)的类型。在本书中,出现这种情况时会特别说明。
关于MongoDB数据格式的更多信息,参考附录B。


ban_gank
6楼 · 2021-01-20 09:05

MongoDB文档存储是使用BSON类型,BSON(BSON short for Bin­ary JSON, is a bin­ary-en­coded seri­al­iz­a­tion of JSON-like doc­u­ments)是二进制序列化的形式。

String(字符串): mongodb中的字符串是UTF-8有效的。 

Integer(整数): 存储数值。整数可以是32位或64位,具体取决于您的服务器。 

Boolean(布尔): 存储布尔(true/false)值。

Double(双精度): 存储浮点值。 

Min/ Max keys(最⼩/最⼤键): 将值与最低和最⾼BSON元素进⾏⽐较。

Arrays(数组): 将数组或列表或多个值存储到⼀个键中。

Timestamp(时间戳): 存储时间戳。

Object(对象): 嵌⼊式⽂档。

Null (空值): 存储Null值。 

Symbol(符号): 与字符串相同,⽤于具有特定符号类型的语⾔。

Date(⽇期): 以UNIX时间格式存储当前⽇期或时间。

Object ID(对象ID) : 存储⽂档ID。 

Binary data(⼆进制数据): 存储⼆进制数据。

Code(代码): 将JavaScript代码存储到⽂档中。

Regular expression(正则表达式): 存储正则表达式


小磊子
8楼 · 2021-01-20 09:50

MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB
是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。

ablabla
9楼 · 2021-01-20 09:56

.MongoDB 之 丰富多彩的数据类型世界

首先我们要先了解一下MongoDB中有什么样的数据类型:

Object  ID :Documents 自生成的 _id

String: 字符串,必须是utf-8

Boolean:布尔值,true 或者false (这里有坑哦~在我们大Python中 True False 首字母大写)

Integer:整数 (Int32 Int64 你们就知道有个Int就行了,一般我们用Int32)

Double:浮点数 (没有float类型,所有小数都是Double)

Arrays:数组或者列表,多个值存储到一个键 (list哦,大Python中的List哦)

Object:如果你学过Python的话,那么这个概念特别好理解,就是Python中的字典,这个数据类型就是字典

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

Timestamp:时间戳

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


相关问题推荐

  • 回答 3

    换行。比如,print hello\nworld效果就是helloworld\n就是一个换行符。\是转义的意思,'\n'是换行,'\t'是tab,'\\'是,\ 是在编写程序中句子太长百,人为换行后加上\但print出来是一整行。...

  • 回答 42

    十种常见排序算法一般分为以下几种:(1)非线性时间比较类排序:a. 交换类排序(快速排序、冒泡排序)b. 插入类排序(简单插入排序、希尔排序)c. 选择类排序(简单选择排序、堆排序)d. 归并排序(二路归并排序、多路归并排序)(2)线性时间非比较类排序:...

  • 回答 70
    已采纳

    前景很好,中国正在产业升级,工业机器人和人工智能方面都会是强烈的热点,而且正好是在3~5年以后的时间。难度,肯定高,要求你有创新的思维能力,高数中的微积分、数列等等必须得非常好,软件编程(基础的应用最广泛的语言:C/C++)必须得很好,微电子(数字电...

  • 回答 28

    迭代器与生成器的区别:(1)生成器:生成器本质上就是一个函数,它记住了上一次返回时在函数体中的位置。对生成器函数的第二次(或第n次)调用,跳转到函数上一次挂起的位置。而且记录了程序执行的上下文。生成器不仅记住了它的数据状态,生成器还记住了程序...

  • 回答 9

    python中title( )属于python中字符串函数,返回’标题化‘的字符串,就是单词的开头为大写,其余为小写

  • 回答 6

    第一种解释:代码中的cnt是count的简称,一种电脑计算机内部的数学函数的名字,在Excel办公软件中计算参数列表中的数字项的个数;在数据库( sq| server或者access )中可以用来统计符合条件的数据条数。函数COUNT在计数时,将把数值型的数字计算进去;但是...

  • 回答 1

    head是方法,所以需要取小括号,即dataset.head()显示的则是前5行。data[:, :-1]和data[:, -1]。另外,如果想通过位置取数据,请使用iloc,即dataset.iloc[:, :-1]和dataset.iloc[:, -1],前者表示的是取所有行,但不包括最后一列的数据,结果是个DataFrame。...

  • Python入门简单吗2021-09-23 13:21
    回答 45

    挺简单的,其实课程内容没有我们想象的那么难、像我之前同学,完全零基础,培训了半年,直接出来就工作了,人家还在北京大公司上班,一个月15k,实力老厉害了

  • 回答 4

    Python针对众多的类型,提供了众多的内建函数来处理(内建是相对于导入import来说的,后面学习到包package时,将会介绍),这些内建函数功用在于其往往可对多种类型对象进行类似的操作,即多种类型对象的共有的操作;如果某种操作只对特殊的某一类对象可行,Pyt...

  • 回答 8

     相当于 ... 这里不是注释

  • 回答 4

    还有FIXME

  • 回答 3

    python的两个库:xlrd和xlutils。 xlrd打开excel,但是打开的excel并不能直接写入数据,需要用xlutils主要是复制一份出来,实现后续的写入功能。

  • 回答 8

    单行注释:Python中的单行注释一般是以#开头的,#右边的文字都会被当做解释说明的内容,不会被当做执行的程序。为了保证代码的可读性,一般会在#后面加一两个空格然后在编写解释内容。示例:#  单行注释print(hello world)注释可以放在代码上面也可以放在代...

  • 回答 2

    主要是按行读取,然后就是写出判断逻辑来勘测行是否为注视行,空行,编码行其他的:import linecachefile=open('3_2.txt','r')linecount=len(file.readlines())linecache.getline('3_2.txt',linecount)这样做的过程中发现一个问题,...

  • 回答 4

    或许是里面有没被注释的代码

  • 回答 26

    自学的话要看个人情况,可以先在B站找一下视频看一下

没有解决我的问题,去提问