Mongodb 如何在Mongo中减去两个日期
考虑一下这段代码。我在3T Studio聚合查询中有此查询Mongodb 如何在Mongo中减去两个日期,mongodb,Mongodb,考虑一下这段代码。我在3T Studio聚合查询中有此查询 { "book.newpublisheddate": {$subtract : [ {$date: "book.published"}, {$date: "1970-01-01T00:00:00.000+0000"}] } } 我不能使用像{$subtract:[“book.published”,new Date()]}这样的代码,因为它说它不是有效的json。我正在使用mongo 3.6.13。不知道您想在哪里使用{$sub
{
"book.newpublisheddate": {$subtract : [ {$date: "book.published"}, {$date: "1970-01-01T00:00:00.000+0000"}] }
}
我不能使用像
{$subtract:[“book.published”,new Date()]}
这样的代码,因为它说它不是有效的json。我正在使用mongo 3.6.13。不知道您想在哪里使用{$subtract:[“book.published”,new Date()]}
。假设它是mongo shell-最有可能的情况是您在“book.published”之前丢失了一个美元符号。尝试“$book.published”
-使用$
引用字段 使用此集合:
> db.test.find()
{
"_id": 0,
"book": {
"published": ISODate("2019-08-04T22:49:14.416Z")
}
}
此聚合的工作原理是:
> db.test.aggregate([
{$project:
{dateDiff: {$subtract: ['$book.published', ISODate('1970-01-01')] }}}
])
{ "_id": 0, "dateDiff": NumberLong("1564958954416") }
请注意,您不需要将book.published
放在$date
中,而只需使用$book.published
。您还需要ISODate('1970-01-01')
这在Studio3T“shell模式”内部和mongo
shell内部工作