重複する日付レコードをカウントするためのMongoDBのGroupByDate
MongoDBで重複する日付レコードをカウントするには、aggregate()と$groupを使用します。ドキュメントを使用してコレクションを作成しましょう-
> db.demo160.insertOne({"DueDate":new ISODate()});
{
"acknowledged" : true,
"insertedId" : ObjectId("5e357525fdf09dd6d0853a04")
}
> db.demo160.insertOne({"DueDate":new ISODate("2019-01-11")});
{
"acknowledged" : true,
"insertedId" : ObjectId("5e357532fdf09dd6d0853a05")
}
> db.demo160.insertOne({"DueDate":new ISODate()});
{
"acknowledged" : true,
"insertedId" : ObjectId("5e357534fdf09dd6d0853a06")
}
> db.demo160.insertOne({"DueDate":new ISODate("2019-01-11")});
{
"acknowledged" : true,
"insertedId" : ObjectId("5e357538fdf09dd6d0853a07")
}
> db.demo160.insertOne({"DueDate":new ISODate("2020-04-10")});
{
"acknowledged" : true,
"insertedId" : ObjectId("5e357542fdf09dd6d0853a08")
} find()メソッドを使用してコレクションからすべてのドキュメントを表示する-
> db.demo160.find();
これにより、次の出力が生成されます-
{ "_id" : ObjectId("5e357525fdf09dd6d0853a04"), "DueDate" : ISODate("2020-02-01T12:55:01.983Z") }
{ "_id" : ObjectId("5e357532fdf09dd6d0853a05"), "DueDate" : ISODate("2019-01-11T00:00:00Z") }
{ "_id" : ObjectId("5e357534fdf09dd6d0853a06"), "DueDate" : ISODate("2020-02-01T12:55:16.787Z") }
{ "_id" : ObjectId("5e357538fdf09dd6d0853a07"), "DueDate" : ISODate("2019-01-11T00:00:00Z") }
{ "_id" : ObjectId("5e357542fdf09dd6d0853a08"), "DueDate" : ISODate("2020-04-10T00:00:00Z") } 以下は、MongoDBで日付ごとにグループ化するクエリです-
> db.demo160.aggregate([
... { $group: {
... _id: {
... $add: [
... { $dayOfYear: "$DueDate"},
... { $multiply:
... [400, {$year: "$DueDate"}]
... }
... ]},
... Frequency: { $sum: 1 },
... d: {$min: "$DueDate"}
... }
... },
... { $sort: {_id: 1} },
... { $limit: 100},
... { $project: { date: "$d", Frequency: 1, _id: 0} }
... ]); これにより、次の出力が生成されます-
{ "Frequency" : 2, "date" : ISODate("2019-01-11T00:00:00Z") }
{ "Frequency" : 2, "date" : ISODate("2020-02-01T12:55:01.983Z") }
{ "Frequency" : 1, "date" : ISODate("2020-04-10T00:00:00Z") } -
対応する重複する名前のフィールド値の数を取得するためのMongoDB集計?
例を見て、ドキュメントを使用してコレクションを作成しましょう- > db.demo558.insertOne( ... { ... _id : 100, ... CountryCode:101, ... details: [ ... { ... Name:"Chris", ... Subject:"MySQ
-
MongoDBを使用して生年月日レコードを年齢に変換する方法
ドキュメントを使用してコレクションを作成しましょう- > db.demo754.insertOne({"DateOfBirth":new Date("2000-05-03")}); { "acknowledged" : true, "insertedId" : ObjectId("5eae9b2da930c785c834e56f") } > db.demo754.insertOne({"DateOfBirth":