> use testDB
> db.testColl.findOne()
{
"_id" : ObjectId("63ec79364610bf82b99d23a5"),
"pid" : "XT-db238f62-cc77-40bb-8952-9c96544dc786",
"group" : "全部订阅用户",
"groupUserId" : "63c0ba6de4b095b2050d9f0a",
"type" : 1,
"eid" : "123456",
"createTime" : NumberLong("1676441910831"),
"updateTime" : NumberLong("1676441910831")
}
MongoDB中NumberLong()
MongoDB中的NumberLong()是一种数据类型,它表示一个64位有符号整数。
在MongoDB中,NumberLong()用于存储大于2^31-1(即2,147,483,647)的整数值,因为MongoDB默认使用32位整数来存储数字,无法存储大于该值的数字。
NumberLong()可以在MongoDB shell中使用,可以通过以下方式创建:
NumberLong("1234567890123456789")
在MongoDB中,NumberLong()的用途非常广泛,例如在聚合操作中,可以对大数字进行计算。
例如,如果要计算一个集合中所有文档的某个字段的总和,而该字段的值可能超过2^31-1,则可以使用NumberLong()来确保计算正确。
另外,在MongoDB的驱动程序中,也可以使用NumberLong()来处理大数字。
例如,在Java中,可以使用BSONObject类的put()方法将一个NumberLong对象插入到MongoDB数据库中。
总之,NumberLong()是MongoDB中一种重要的数据类型,用于处理大数字,确保数据的准确性和完整性。
"createTime" : NumberLong("1676441910831")
这个示例中,"createTime"字段的值是一个64位有符号整数,它的值是1676441910831。由于这个数字超过了2^31-1,因此不能使用32位整数来存储它。
为了确保数据的正确性和完整性,MongoDB使用NumberLong()函数将其转换为一个64位整数,并将其存储在数据库中。
在MongoDB shell中,可以使用以下命令来查询和处理这个字段的值:
db.collection.find({"createTime": NumberLong("1676441910831")})
这将返回具有指定"createTime"值的所有文档。
注意,这种数据类型必须要在NumberLong对象里面加上双引号,才能执行正常查询动作!!!
另外,在聚合操作中,可以使用$toLong聚合操作符将一个32位整数转换为64位整数。例如:
db.collection.aggregate([
{
$group: {
_id: null,
total: { $sum: { $toLong: "$createTime" } }
}
}
])
这将计算集合中所有文档的"createTime"字段的总和,并将结果作为64位整数返回。
时间戳
Unix 时间戳是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。
时间戳转换
https://tool.lu/timestamp
"createTime" : NumberLong("1676441910831")
"updateTime" : NumberLong("1676441910831")
在示例中,"createTime"字段的值是1676441910831,它是一个时间戳,表示从1970年1月1日至2023-02-15 14:18:30 的毫秒数。这种表示方式可以使时间戳在MongoDB中进行存储和处理时具有更高的精度和准确性。
在MongoDB shell中,可以使用以下命令将时间戳转换为日期:
new Date(NumberLong("1676441910831"))
> new Date(NumberLong("1676441910831"))
ISODate("2023-02-15T06:18:30.831Z")
这将返回一个JavaScript日期对象,表示时间戳对应的日期和时间。
ISODate("2023-02-15T06:18:30.831Z") 表示的是UTC时间,加8就是 2023-02-15 14:18:30 了。
参考
时间戳转换工具
https://tool.lu/timestamp
MongoDB中NumberLong(x)和 NumberLong("x")之间的区别
https://www.nhooo.com/note/qa0g34.html
网友评论