[MONGODB] Node.js를 - 몽구스 - 점검 모음이있는 경우
MONGODBNode.js를 - 몽구스 - 점검 모음이있는 경우
나는 몽구스를 사용하여 일부 데이터를 삽입 할 필요가 있지만 내가 먼저 컬렉션이 존재하는지 확인해야하므로 컬렉션의 이름은, 삽입의 순간에 사용자가 제공된다.
나는 모음이 존재하는지 확인하는 방법을 알고있는 방법은 system.namespaces 수집을 조회하는 것입니다. 나는 그 일을 3 개 가능한 방법을 볼 수 있습니다.
숫자 3은 가장 우아하고 난 피하기 위해 노력하고있어 하나, 나는 드라이버의 다른 인스턴스를로드하거나 몽구스가 이미 하나를 만들 때 새 연결을 만들 싶지 않아요.
나는이 글을 쓰는 한 후 1 번을 시도 할거야. 난 그냥 매우 간단 system.namespaces 및 스키마 모습을 확인
나는 아직도 몇 가지 의견을 듣고 싶습니다.
감사!
해결법
-
==============================
1.옵션 2는 아마 가장 깨끗한입니다. 당신이 mongoose.createConnection을 사용하여 열 됐어요 몽구스 연결 개체 이름 CONN를 가정하면, 당신은 conn.db.를 통해 네이티브 몽고에게 DB 개체에 액세스 할 수 있습니다 당신이 collectionNames이 호출 할 수 있습니다에서 이는 당신이 찾고있는 무엇을 제공해야한다 :
옵션 2는 아마 가장 깨끗한입니다. 당신이 mongoose.createConnection을 사용하여 열 됐어요 몽구스 연결 개체 이름 CONN를 가정하면, 당신은 conn.db.를 통해 네이티브 몽고에게 DB 개체에 액세스 할 수 있습니다 당신이 collectionNames이 호출 할 수 있습니다에서 이는 당신이 찾고있는 무엇을 제공해야한다 :
conn.db.collectionNames(function (err, names) { // names contains an array of objects that contain the collection names });
당신은 또한 당신이 찾고있는 무슨에 결과를 필터링 할 수 collectionNames에 매개 변수로서] 렉션 이름을 전달할 수 있습니다.
몽구스 4.x의 업데이트
필터를 허용하고 당신이로 할 것 있도록 커서를 반환 몽구스 4.x의 사용은, collectionNames이 listCollections로 대체되었다는 MongoDB를 기본 드라이버의 2.X 버전에서 :
mongoose.connection.db.listCollections({name: 'mycollectionname'}) .next(function(err, collinfo) { if (collinfo) { // The collection exists } });
-
==============================
2.이 날 (몽구스 버전 5.1.1) 작동 :
이 날 (몽구스 버전 5.1.1) 작동 :
const mongoose = require('mongoose'); const mongoURI = 'mongodb://localhost:27017/mydb' // notice the mongoose.createConnection instead of mongoose.connect const conn = mongoose.createConnection(mongoURI); conn.on('open', function () { conn.db.listCollections().toArray(function (err, collectionNames) { if (err) { console.log(err); return; } console.log(collectionNames); conn.close(); }); });
-
==============================
3.모음의 목록에 수집 찾기
모음의 목록에 수집 찾기
public function CollectionExists($collectionName) { $mongo = new Mongo(); $collectionArr = $mongo->selectDB('yourrec')->listCollections(); if (in_array($collectionName, $collectionArr)) { return true; } return false; }
from https://stackoverflow.com/questions/13444876/node-js-mongoose-check-if-a-collection-exists by cc-by-sa and MIT license
'MONGODB' 카테고리의 다른 글
[MONGODB] MongoDB의 한 업데이트 호출에 두 개의 분리 된 배열로 밀어 (0) | 2019.12.15 |
---|---|
[MONGODB] 방법 그룹 푸시을 제한하는 MongoDB를 집계 파이프 라인 (0) | 2019.12.15 |
[MONGODB] 어떻게 몽고 문서에 중첩 된 필드의 데이터 유형을 변경하려면? (0) | 2019.12.15 |
[MONGODB] 몽고와 동시에 풀과 addtoset (0) | 2019.12.15 |
[MONGODB] 어떻게하여 MongoDB의 하위 문서의 모든 필드를 요약하는? (0) | 2019.12.15 |