8.mongo命令行中的数据类型

本文介绍了MongoDB中几种重要的数据类型,包括Date、ObjectId、NumberLong等,并详细讲解了它们在mongo命令行中的使用方法及如何通过命令行验证数据类型。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

8.mongo命令行中的数据类型

最新内容会在源站更新.
转载请保留原文链接: http://dashidan.com/article/mongodb/basic/8.html

MongoDB采用BSON数据类型, 比JSON格式提供了更多的数据类型. 数据库驱动提供了本地方法支持这些数据类型, 并且mongo命令行也提供了一些帮助类来使用这些数据类型.

① Date

mongo命令行返回当前时间, 以字符串或者一个对象的形式.

  • Date() 以字符串返回当前时间
var myDateString = Date();
显示当前日期字符串输入:
myDateString
显示内容:
Thu Oct 26 2017 17:26:35 GMT+0800 (中国标准时间)
查看变量类型输入:
typeof myDateString
显示内容:
string
* new Date() 返回以`ISODate()`包装的Date对象. * ISODate() 返回以`ISODate()`包装的Date对象. mongo命令行中`new Date()`和`ISODate()`都返回`Date`对象. 输入:
var myDate = new Date();
var myDateInitUsingISODateWrapper = ISODate();
myDate
myDateInitUsingISODateWrapper
显示:
ISODate("2017-10-26T09:30:19.073Z")
ISODate("2017-10-26T09:30:19.586Z")
用instanceof验证数据类型:
myDate instanceof Date
myDateInitUsingISODateWrapper instanceof Date
显示:
true
true

② ObjectId

mongo命令行提供了ObjectId()包装类来封装ObjectId数据类型.

生成一个新的ObjectId,输入:

new ObjectId
显示:
ObjectId("59f1ac932cacee0f03e35dc6")

③ NumberLong

mongo命令默认返回浮点数, 提供了NumberLong()包装类来返回一个64位的整数.

例如:

NumberLong("2090845886852")
这个将定义一个64位整数, 而不是一个浮点数. 写入long型整数:
db.collection.insertOne( { _id: 10, calc: NumberLong("2090845886852") } )
db.collection.updateOne( { _id: 10 },
                      { $set:  { calc: NumberLong("2555555000000") } } )
db.collection.updateOne( { _id: 10 },
                      { $inc: { calc: NumberLong(5) } } )
检验结果:
db.collection.findOne( { _id: 10 } )
返回的文档对象:
{ "_id" : 10, "calc" : NumberLong("2555555000005") }
如果采用` incNumberLongfloat,float.:1. i n c ‘ 操 作 符 对 ‘ N u m b e r L o n g ‘ 对 象 来 进 行 ‘ f l o a t ‘ 类 型 运 算 , 结 果 数 据 变 为 ‘ f l o a t ‘ 类 . 举 例 : 1. 采 用 ‘ inc`操作符加5, `5`默认为浮点型.
db.collection.updateOne( { _id: 10 },
                      { $inc: { calc: 5 } } )
2.查找修改结果
db.collection.findOne( { _id: 10 } )
3.显示结果
{ "_id" : 10, "calc" : 2555555000010 }

④ NumberInt

mongo命令默认所有的数字类型数字为64位浮点型, 提供了NumberInt()构造函数来生成32位整数.

理论同NumberLong.

⑤ NumberDecimal

mongo命令默认所有的数字类型数字为64位浮点型, 提供了NumberDecimal()构造函数来指定128位浮点型十进制小数.

<h4>浮点数满足了绝大部分应用场景,不再额外介绍这个.可以参考原文.</h4>

⑥ mongo命令查看类型

mongo命令中可以通过instanceoftypeof操作符来查看数据类型.

1.instanceof

instanceof返回一个布尔值, 来表示是否是某个类型的实例.

举个栗子, 检查_id属性值是否为ObjectId类型.

mydoc._id instanceof ObjectId
显示
true

2.typeof

typeof返回数据类型

举个栗子, 查看_id属性的数据类型:

typeof mydoc._id

这里返回object类型而不是ObjectId类型.

⑦ 参考文章

https://docs.mongodb.com/manual/core/shell-types/

⑧ 相关文章

MongoDB中文文档

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值