node.js mongodb 클라이언트를 사용하고 있습니다. 컬렉션에 타임 스탬프 값이 있습니다. 이제 타임 스탬프를 IOSDate로 변환하기 위해 집계를 사용하고 싶기 때문에 쉽게 비교할 수 있습니다. 그러나 나는 그것을 어떻게하는지 모른다.mongodb 집계에서 타임 스탬프를 ISO 날짜로 변환하는 방법
var db = game.getDB();
var coll = db.collection("LoginRecord");
coll.aggregate([
{
$project: {
"PT" : 1,
"PID" : 1,
"regDate" : new Date("$createTime"), //#####createTime is a timestamp, I want to convert it to IOSDate
"loginDay" : { $dayOfYear : "$_serverDate"}
}
},
{
$group : {
"_id" : "$loginDay",
"logUsers" : { $addToSet: "$PID"}
}
},
{
$unwind : "$logUsers"
},
{
"$group" : {
"_id" : "$_id",
"logCount" : { $sum: 1}
}
}
], function(err, res) {
logger.info("aggregate res " + JSON.stringify(res));
});
당신은 그렇게 할 수 없습니다. 사용중인 JavaScript 함수는 "외부"와 "이전"평가를 통해 파이프 라인 내용이 서버로 전송됩니다. 파이프 라인 실행 중에는 요소에 임의의 코드를 사용할 수 없습니다. "dayOfYear"를 결정하기 위해 타임 스탬프 값을 사용해야합니다 (매우 복잡하며 집계 프레임 워크에 처리하기 위해 필요한 수학 연산자가 없다는 것이 확실합니다). 그렇지 않으면 컬렉션을 대신 Date 유형을 사용하도록 변환하십시오. 그러나 파이프 라인 실행 중에는이 방법을 사용할 수 없습니다. –
mongodb 클라이언트가 C++ 인 경우 시간 값이있는 json 값을 어떻게 만들 수 있습니까? json을 mongodb로 보내면 날짜 값이 자동으로 ISODate 값으로 저장됩니까? 나는 그것을 어떻게 성취 할 수 있는가? – user3172936
드라이버 라이브러리에는 날짜 개체 유형이 있습니다. 그것을 사용하는 방법을 모르는 경우 다른 질문을 올리십시오. 내 설명대로 여기에서하려는 것은 불가능합니다. –