기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
$minute
Amazon DocumentDB의 $minute 집계 파이프라인 단계는 날짜 또는 타임스탬프 필드에서 분 값을 추출합니다.
이 연산자는 집계 파이프라인 내에서 날짜 및 시간 기반 계산 또는 그룹화를 수행해야 할 때 유용합니다.
파라미터
예제(MongoDB 쉘)
다음 예제에서는 $minute 연산자를 사용하여 타임스탬프 필드에서 추출한 분 값을 기준으로 문서를 그룹화하고 각 그룹의 문서 수를 계산하는 방법을 보여줍니다.
샘플 문서 생성
db.events.insertMany([
{ timestamp: new Date("2023-04-15T10:30:25.000Z") },
{ timestamp: new Date("2023-04-15T10:30:35.000Z") },
{ timestamp: new Date("2023-04-15T10:31:05.000Z") },
{ timestamp: new Date("2023-04-15T10:31:45.000Z") },
{ timestamp: new Date("2023-04-15T10:32:15.000Z") }
]);
쿼리 예제
db.events.aggregate([
{
$group: {
_id: {
minute: { $minute: "$timestamp" }
},
count: { $count: {} }
}
},
{ $sort: { "_id.minute": 1 } }
]);
출력
[
{ "_id": { "minute": 30 }, "count": 2 },
{ "_id": { "minute": 31 }, "count": 2 },
{ "_id": { "minute": 32 }, "count": 1 }
]
코드 예제
$minute 명령을 사용하기 위한 코드 예제를 보려면 사용하려는 언어의 탭을 선택합니다.
- Node.js
-
const { MongoClient } = require('mongodb');
async function example() {
const client = await MongoClient.connect('mongodb://<username>:<password>@<cluster-endpoint>:27017/?tls=true&tlsCAFile=global-bundle.pem&replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false');
const db = client.db('test');
const collection = db.collection('events');
await collection.insertMany([
{ timestamp: new Date("2023-04-15T10:30:25.000Z") },
{ timestamp: new Date("2023-04-15T10:30:35.000Z") },
{ timestamp: new Date("2023-04-15T10:31:05.000Z") },
{ timestamp: new Date("2023-04-15T10:31:45.000Z") },
{ timestamp: new Date("2023-04-15T10:32:15.000Z") }
]);
const result = await collection.aggregate([
{
$group: {
_id: {
minute: { $minute: "$timestamp" }
},
count: { $count: {} }
}
},
{ $sort: { "_id.minute": 1 } }
]).toArray();
console.log(result);
await client.close();
}
example();
- Python
-
from pymongo import MongoClient
from datetime import datetime
def example():
client = MongoClient('mongodb://<username>:<password>@<cluster-endpoint>:27017/?tls=true&tlsCAFile=global-bundle.pem&replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false')
db = client['test']
collection = db['events']
collection.insert_many([
{'timestamp': datetime(2023, 4, 15, 10, 30, 25)},
{'timestamp': datetime(2023, 4, 15, 10, 30, 35)},
{'timestamp': datetime(2023, 4, 15, 10, 31, 5)},
{'timestamp': datetime(2023, 4, 15, 10, 31, 45)},
{'timestamp': datetime(2023, 4, 15, 10, 32, 15)}
])
result = list(collection.aggregate([
{
'$group': {
'_id': {
'minute': {'$minute': '$timestamp'}
},
'count': {'$count': {}}
}
},
{'$sort': {'_id.minute': 1}}
]))
print(result)
client.close()
example()