考虑此代码。我在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。
答案 0 :(得分:1)
使用此收藏集:
> 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内有效。
答案 1 :(得分:0)
不知道您想在哪里使用{$subtract : [ "book.published", new Date()] }
。假设它是mongo shell-很可能您在"book.published"
之前缺少美元符号。尝试"$book.published"
-使用$
来引用字段。