[MONGODB] 어떻게 몽구스의 원시 MongoDB의 작업을 할까?
MONGODB어떻게 몽구스의 원시 MongoDB의 작업을 할까?
내가 단위 테스트를 쓸 때, 나는 테스트 데이터베이스를 삭제하고 일부 초기화 데이터를 삽입하고, 또한 테스트에 MongoDB를의 데이터를 확인하고자하기 때문에 나는이 부탁 해요. 그래서 나는 MongoDB를 원시 작업이 필요합니다.
어떻게 몽구스에서이 작업을 수행하려면? 내가 지금 할 수있는 것은 단지 연결을 생성하고, 몽구스의 공식 사이트에있는 모든 문서를 찾을 수 없습니다.
var mongoose = require('mongoose');
mongoose.connect('mongo://localhost/shuzu_test');
// get the connection
var conn = mongoose.connection;
그러나 방법 :
해결법
-
==============================
1.워드 프로세서에서 "드라이버 액세스"섹션을 참조하십시오 : http://mongoosejs.com/
워드 프로세서에서 "드라이버 액세스"섹션을 참조하십시오 : http://mongoosejs.com/
기본적으로 당신은 YourModel.collection를 수행하여 노드 MongoDB의 네이티브 드라이버에 액세스 할 수 있습니다 그리고 당신은 당신이 무엇을 필요가 삽입 또는 제거하거나 떨어 뜨리거나 할 수 있습니다.
거기에 문서는 아니지만,이 방법으로 여기에있는 모든 액세스를 얻을 수 있습니다 : https://github.com/mongodb/node-mongodb-native/blob/master/lib/mongodb/collection.js
편집하다:
귀하의 경우에 당신은 당신의 테스트 스위트에 몽구스를 사용하여 건너 뛰고 직접 노드 MongoDB의 모국어를 사용, 또는 당신의 테스트를 시작하기 전에 실행 할 수있는 간단한 MongoDB의 쉘 스크립트를 작성 할 수 있습니다.
-
==============================
2.당신은 mongoose.connection.db를 사용하여 기본 NodeJS 드라이버를 사용하여 MongoDB 명령을 실행할 수 있습니다. 이것은 NodeJS MongoDB의 드라이버를 액세스하고, 당신은 몽구스 모델을 만들 필요가 없습니다.
당신은 mongoose.connection.db를 사용하여 기본 NodeJS 드라이버를 사용하여 MongoDB 명령을 실행할 수 있습니다. 이것은 NodeJS MongoDB의 드라이버를 액세스하고, 당신은 몽구스 모델을 만들 필요가 없습니다.
mongoose.connection.db.collection('userCollection').insert({ username: 'captain1', firstName: 'Steve', lastName: 'Rogers', });
mongoose.connection.db.collection('userCollection').update( {someFilterProperty: true}, {$set: { siteId: new mongoose.mongo.ObjectId('56cb91bdc5946f14678934ba'), hasNewSiteId: true}}, {multi: true}); });
당신은 데이터베이스 연결 데시벨 참조 mongoose.connection.db을 사용하여 해당 데이터베이스에 모든 명령의 특정을 보낼 수 있습니다.
이 몽구스 API의 문서입니다 : http://mongoosejs.com/docs/api.html#connection_Connection-db
중요 : NodeJS 드라이버의 옵션 중 일부는 MongoDB의 쉘 명령의 옵션 다릅니다 있습니다. 예를 들어 findOneAndUpdate는 () 대신 returnNewDocument의 returnOriginal을 이용한다. 이에 대한 자세한 내용은 여기와 여기를 참조하십시오.
-
==============================
3.몽구스의 원시 작업을 실행하려면이 옵션을 사용합니다.
몽구스의 원시 작업을 실행하려면이 옵션을 사용합니다.
Model_name.collection.insertMany(array, { ordered: false },function(err, success){ console.log(success); });
-
==============================
4.그래서위한 목적이 게시물을 다른 시간 절약, 여러 번 문서 / 코드를 파고 테스트 후 정리 데시벨에, 같은 문제가 발생하고, 실제 대답은 오직 때문에 부재 "코드 블록"의 혼동 적이;)
그래서위한 목적이 게시물을 다른 시간 절약, 여러 번 문서 / 코드를 파고 테스트 후 정리 데시벨에, 같은 문제가 발생하고, 실제 대답은 오직 때문에 부재 "코드 블록"의 혼동 적이;)
몽구스 컬렉션 MongoDB의 수집을 확장
같은 연결 간다 :
모든 "RAW"작업을 수집 / 연결에서 수행 할 수 있도록, 당신이 가정
var connection = mongoose.connection;
그때:
데이터베이스를 1.drop :
connection.dropDatabase()
컬렉션을 2.create
connection.collection('newcollection') // creates if not exists
컬렉션에 일부 데이터를 3.write
connection.collection('mybenotnewcollection').bulkWrite([ { insertOne: { whatewer: { you: 'need' } } }, ]);
4.query 모음
그건 분명히 문제가 아니라입니다 : findall은가 집계 찾기, 모든 허용합니다 (문서 참조)
컬렉션을 5.drop
connection.collection('notsonewcollection').drop()
from https://stackoverflow.com/questions/10519432/how-to-do-raw-mongodb-operations-in-mongoose by cc-by-sa and MIT license
'MONGODB' 카테고리의 다른 글
[MONGODB] MongoDB를 통해 몽구스 JS - findById 메소드는 무엇입니까? (0) | 2019.12.28 |
---|---|
[MONGODB] MongoDB를 가진 유닛 테스트 (0) | 2019.12.28 |
[MONGODB] 몽구스의 어떤 SchemaType는 타임 스탬프에 가장 적합합니다? (0) | 2019.12.28 |
[MONGODB] 탄성 콩 줄기에서 Mongos은 설치 / 설정 (0) | 2019.12.28 |
[MONGODB] 몽고는 : 특정 필드가없는 항목을 찾을 수 (0) | 2019.12.28 |