[MONGODB] 모음을 지정하지 않고 MongoDB의에서 문서를 가져 오기
MONGODB모음을 지정하지 않고 MongoDB의에서 문서를 가져 오기
MongoDB의 ID는 단일 데이터베이스 클러스터에 대한 고유합니다. 이 컬렉션의 이름을 지정하지 않고, 자신의 ID를 사용하여 문서를 얻을 수 있습니까?
예라면, 어떻게?
어떤 경우에는, 왜?
해결법
-
==============================
1.네,하지만 (각 수집을 조회해야하기 때문에) 확장 가능한 방식이다. 당신은 2 개 또는 3 컬렉션이있는 경우, 이것은 당신이 아마 당신이이 일을하는 이유를 파악하기 위해 설계를 검토해야합니다 ... 확인 될 수 있지만 수 있습니다. 왜 그런데,입니까?
네,하지만 (각 수집을 조회해야하기 때문에) 확장 가능한 방식이다. 당신은 2 개 또는 3 컬렉션이있는 경우, 이것은 당신이 아마 당신이이 일을하는 이유를 파악하기 위해 설계를 검토해야합니다 ... 확인 될 수 있지만 수 있습니다. 왜 그런데,입니까?
샘플 쉘 코드 :
db.test1.save({}); db.test2.save({}); db.test3.save({}); db.test4.save({}); db.test5.save({}); db.test6.save({}); db.test2.findOne(); // gives: { "_id" : ObjectId("4f62635623809b75e6b8853c") } db.getCollectionNames().forEach(function(collName) { var doc = db.getCollection(collName).findOne({"_id" : ObjectId("4f62635623809b75e6b8853c")}); if(doc != null) print(doc._id + " was found in " + collName); });
제공 : 4f62635623809b75e6b8853c은 TEST2에서 발견되었다
-
==============================
2.ObjectId가 세계적으로 독특한 (전 세계뿐 아니라 단일 클러스터 내에서) 할 수 있도록 설계되어있다. 그리고 그것은 꽤 많이 있습니다.
ObjectId가 세계적으로 독특한 (전 세계뿐 아니라 단일 클러스터 내에서) 할 수 있도록 설계되어있다. 그리고 그것은 꽤 많이 있습니다.
그것은 시간, 컴퓨터 ID, 프로세스 ID 및 임의의 숫자를 포함하고 있습니다. 그러나, 데이터베이스 또는 컬렉션 이름은 포함되지 않습니다. 따라서, 단지 ID를 사용하여 문서를 가져 오는 것은 불가능합니다. 당신은뿐만 아니라 데이터베이스 및 수집 이름을 제공해야합니다.
from https://stackoverflow.com/questions/9728196/get-a-document-in-mongodb-without-specifying-collection by cc-by-sa and MIT license
'MONGODB' 카테고리의 다른 글
[MONGODB] 몽고와 모든 문서에서 배열 발생을 계산 (0) | 2019.12.19 |
---|---|
[MONGODB] 복잡한 (비동기) virtuals에를 몽구스 (0) | 2019.12.19 |
[MONGODB] 몽고 통합 프레임 워크의 특정한 배열 요소로 그룹화 (0) | 2019.12.19 |
[MONGODB] 어떻게 MongoDB의 하나 제대로 증가 많은 날짜는 무엇입니까? (0) | 2019.12.19 |
[MONGODB] 몽구스 -에 의해 : 11000 E11000 중복 키 에러 인덱스 발생? (0) | 2019.12.19 |