我正在学习MongoDB NoSQL,我有一个关于它的问题。
请考虑以下文档:
{
"_id" : ObjectId("63a994974ac549c5ea982d2b"),
"title" : "Destroyer",
"year" : 2018
},
{
"_id" : ObjectId("63a994974ac549c5ea982d2a"),
"title" : "Aquaman",
"year" : 2014
},
{
"_id" : ObjectId("63a994974ac549c5ea982d29"),
"title" : "On the Basis of Sex",
"year" : 1996
},
{
"_id" : ObjectId("63a994974ac549c5ea982d28"),
"title" : "Holmes and Watson",
"year" : 1940
},
{
"_id" : ObjectId("63a994974ac549c5ea982d27"),
"title" : "Conundrum: Secrets Among Friends",
"year" : 1957
},
{
"_id" : ObjectId("63a994974ac549c5ea982d26"),
"title" : "Welcome to Marwen",
"year" : 2000
},
{
"_id" : ObjectId("63a994974ac549c5ea982d25"),
"title" : "Mary Poppins Returns",
"year" : 1997
},
{
"_id" : ObjectId("63a994974ac549c5ea982d24"),
"title" : "Bumblebee",
"year" : 2004
},
我试图得到所有的标题,他们有一个闰年,我想得到"计数"的所有标题。
所以,我试了这个代码:
var q1 = {$project: {
leap: {
"$and": [
"$eq": ["$divide"["$year", 4], 0],
{
"$or":[{"$ne": ["$divide"["$year",100],0]},
{"$eq": ["$divide"["$year", 400],0]}]
}
]
}
}}
var q2 = {$group: {"_id": null, "total": {$sum:1}}}
var etapas = [q1,q2]
db.genres.aggregate(etapas)
但是,在这段代码中,我只得到了'q1',变量'leap',所有的条件都是假的。所以,我不知道如何得到逻辑运算符为真或假时的年份。更重要的是,我想计算之前给我的文档中所有的闰年。
之前文档的预期输出如下所示:
{
"_id": leap year
"count": 3
}
我该怎么做呢?当我得到一个错误的结果时,我该怎么打字呢?
非常感谢你对这个问题的关注。无论你需要什么,都不要有任何问题。
1条答案
按热度按时间ykejflvf1#
要检查一个数是否可以被另一个数整除,您需要使用$mod查看余数是否为0,例如:
Playground