[MONGODB] MongoDB의에서 필드의 실제의 형태를 돌려줍니다
MONGODBMongoDB의에서 필드의 실제의 형태를 돌려줍니다
MongoDB를 $ 표시 형식을 사용하여, 상기 필드는 BSON 데이터 종류 (문서를 참조)와 일치하는 경우에 기초하여 검색을 필터링 할 수있다.
의 경우는 예를 들면.
db.posts.find({date2: {$type: 9}}, {date2: 1})
이는 반환 :
{
"_id" : ObjectId("4c0ec11e8fd2e65c0b010000"),
"date2" : "Fri Jul 09 2010 08:25:26 GMT"
}
나는 필드의 실제 유형이 컬렉션의 모든 필드에 대해, 뭔지 말할 것이다 쿼리를해야합니다. 이 MongoDB를 함께 할 수 있습니까?
해결법
-
==============================
1.OK, 여기에 5 월 도움이 몇 가지 관련 질문이 있습니다 :
OK, 여기에 5 월 도움이 몇 가지 관련 질문이 있습니다 :
지도-감소를 사용하여 컬렉션의 모든 필드 이름을 가져옵니다.
여기에 재귀 버전이 나열 가능한 모든 필드입니다.
희망이 당신이 시작할 수 있습니다. 그러나, 나는 당신이이 요청과 함께 몇 가지 문제로 실행에 거라고 생각한다. 여기에 두 가지 문제가 있습니다 :
당신은 당신이 문제 # 1를 해결할 수 있다고 가정 그렇다면, 당신은 "모든 필드 이름 가져 오기"에 약간의 변화를 이용하여 문제 # 2를 해결할 수 있어야합니다.
아마 다음과 같을 것이다 :
"map" : function() { for (var key in this) { emit(key, [ typeof value[key] ]); } } "reduce" : function(key, stuff) { return (key, add_to_set(stuff) ); }
그래서 기본적으로 당신은지도 기능의 키 (배열)를 키 값의 유형을 방출한다. (가) 기능을 감소에서 그런 다음 각 유형에 대해 고유 한 항목을 추가합니다.
실행의 끝에서이 같은 데이터를 것
{ "_id"[255], "이름"[1,5,8, ...}
물론,이 모든 작업을 많이이며, 실제 문제에 따라, 당신은 당신이 항상 올바른 유형의 데이터에두고 있다는 것을 (사용자 코드에서) 확인 할 수 있습니다. 데이터가 DB에 후 데이터의 유형을 찾는 것은 확실히 고통입니다.
-
==============================
2.MongoDB를 3.4에서 시작, 당신은 필드의 형식을 반환하는 $ 유형 집계 연산자를 사용할 수 있습니다.
MongoDB를 3.4에서 시작, 당신은 필드의 형식을 반환하는 $ 유형 집계 연산자를 사용할 수 있습니다.
db.posts.aggregate( [ { "$project": { "fieldType": { "$type": "$date2" } } } ] )
이는 수율 :
{ "_id" : ObjectId("4c0ec11e8fd2e65c0b010000"), "fieldType" : "string" }
-
==============================
3.몽고 쉘에서 쿼리 아래를 입력
몽고 쉘에서 쿼리 아래를 입력
typeof db.employee.findOne().first_name
통사론
typeof db.collection_name.findOne().field_name
-
==============================
4.A는 5 = 있음을 지적하면서, a.constructor.toString ()을 인쇄 기능 번호 () {[네이티브 코드]}, 하나에 비슷한 작업을 수행 할 수 있습니다
A는 5 = 있음을 지적하면서, a.constructor.toString ()을 인쇄 기능 번호 () {[네이티브 코드]}, 하나에 비슷한 작업을 수행 할 수 있습니다
db.collection.mapReduce (함수 () { 발광 (this._id.constructor.toString () / ^ 함수 (\ S +) (교체 + $ / "$ 1") 1..); } 함수 (K, V) { Array.sum 창 (V); }, {아웃 : 인라인 {1}});
from https://stackoverflow.com/questions/3208538/return-actual-type-of-a-field-in-mongodb by cc-by-sa and MIT license
'MONGODB' 카테고리의 다른 글
[MONGODB] 변환 ISO 날짜에 타임 스탬프에 몽고 쿼리 (0) | 2019.12.19 |
---|---|
[MONGODB] MongoDB의에서 배열의 내부 배열 내부의 업데이트 포함 된 개체 (0) | 2019.12.18 |
[MONGODB] MongoDB를이 - 권한 소켓 거부 : /tmp/mongodb-27017.sock를 (0) | 2019.12.18 |
[MONGODB] MongoDB의에서 당신은 어떻게 중첩 된 값 / 포함 된 문서를 업데이트 $ 세트를 사용합니까? (0) | 2019.12.18 |
[MONGODB] 삽입 또는 갱신하여 MongoDB의 upsert 그랬다면 확인 (0) | 2019.12.18 |