반응형
mongodb aggregate의 문자열 값으로 $projectObjectId는 어떻게 합니까?
응답에 ObjectId 대신 문자열을 가져오기 위해 집계 함수에서 사용할 수 있는 연산자가 있습니까?
db.something.aggregate([
{ "$match": { "property": { "$exists": true } } },
{ "$project": { "stringId": "$_id.???" } }
])
Mongodb 4.0은 집계 연산자를 도입했습니다.이제 ObjectId를 문자열로 쉽게 변환할 수 있습니다.
db.collection.aggregate([
{
$project: {
_id: {
$toString: "$_id"
}
}
}
])
또는 그 반대의 경우 집계를 사용합니다.
db.collection.aggregate([
{
$project: {
_id: {
$toObjectId: "$_id"
}
}
}
])
ObjectId에서 문자열을 가져올 직접 연산자가 집계 함수에 없습니다.
버전 2.6 이후에는ObjectId.toString()ObjectId를 문자열로 변환하는 메서드입니다.먼저 객체를 일치시키고 투영합니다.ID. 그런 다음 사용하여 이 개체 ID를 문자열로 변환할 수 있습니다.ObjectID.toString().
db.something.aggregate([{"$match":{'property': {$exists:true}}},{"$project":{"_id":1}}])
그런 다음 결과 개체를 사용하고 다음을 사용하여 문자열을 응답으로 가져옵니다.ObjectID.tostring()
편집: 다음을 사용하여 개체 ID의 str 속성에 액세스할 수 있습니다.
ObjectId("507f191e810c19729de860ea").str
출처: mongodb 문서
를 사용하여 인라인으로 수행할 수 있습니다.$concat연산자:
db.something.aggregate(
[
{ $match :
{ 'property' :
{ $exists:true }
}
},
{ $project:
{ stringId:
{ $concat: [ ObjectId().str ] }
}
}
]
)
언급URL : https://stackoverflow.com/questions/36059986/how-to-project-objectid-to-string-value-in-mongodb-aggregate
반응형
'programing' 카테고리의 다른 글
| UIButton 제목 UILabel 글꼴 크기를 프로그래밍 방식으로 설정 (0) | 2023.05.09 |
|---|---|
| VB의 null 가능한 유형입니다.NET? (0) | 2023.05.09 |
| NVM을 사용하여 기본 노드 버전을 설정하는 방법은 무엇입니까? (0) | 2023.05.09 |
| 열의 마지막 비어 있지 않은 셀 (0) | 2023.05.09 |
| Angular 6 재료 매트 선택 변경 방법 제거 (0) | 2023.05.09 |