prosource

몽구스에서 생몽고드비 수술은 어떻게 하나요?

probook 2023. 2. 22. 22:18
반응형

몽구스에서 생몽고드비 수술은 어떻게 하나요?

유닛 테스트를 작성할 때 테스트 데이터베이스를 드롭하고 초기화 데이터를 삽입하고 테스트 시 mongodb에 있는 데이터를 확인하고 싶어서 물어봅니다.몽고드브에 대한 생작전이 필요해

몽구스에서 어떻게 하는 거야?제가 지금 할 수 있는 일은 연결을 만드는 것뿐이고, mongoose 공식 사이트에서 문서를 찾을 수 없습니다.

 var mongoose = require('mongoose');
 mongoose.connect('mongo://localhost/shuzu_test');

 // get the connection
 var conn = mongoose.connection;

단, 방법:

  1. 데이터베이스를 폐기하다
  2. 수집품을 만들다
  3. 수집품에 데이터를 쓰다
  4. 수집품을 문의하다.
  5. 모금을 포기하다.

native NodeJS 드라이버를 사용하여 mongodb 명령을 실행할 수 있습니다.mongoose.connection.db. 노드에 액세스합니다.JS MongoDB 드라이버이므로 mongoose 모델을 만들 필요가 없습니다.

인서트

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});
});

데이터베이스 연결 DB 참조를 사용하여 해당 데이터베이스에 대한 모든 명령을 전송할 수 있습니다.mongoose.connection.db.

이것은 mongoose API 문서입니다.http://mongoosejs.com/docs/api.html#connection_Connection-db

중요:NodeJS 드라이버의 일부 옵션은 MongoDB 셸 명령의 옵션과 다릅니다.예를들면findOneAndUpdate()사용하다returnOriginal대신returnNewDocument자세한 내용은 이쪽과 이쪽을 참조해 주세요.

문서내의 「드라이버 액세스」의 항을 참조해 주세요.http://mongoosejs.com/

기본적으로 다음과 같이 node-mongodb-native 드라이버에 액세스할 수 있습니다.YourModel.collection그러면 당신은 할 수 있다insert또는remove또는drop필요한 건 뭐든지요

문서는 없습니다만, 이 어프로치에서는, 다음의 모든 것에 액세스 할 수 있습니다.https://mongoosejs.com/docs/api.html#collection-js

편집:

이 경우 테스트 스위트에서 mongoose 사용을 건너뛰고 node-mongodb-native를 직접 사용하거나 테스트 시작 전에 실행할 수 있는 간단한 mongodb스크립트를 작성할 수도 있습니다.

mongoose에서 원시 작업을 실행할 때 사용합니다.

  Model_name.collection.insertMany(array, { ordered: false },function(err, success){
            console.log(success);
        });

테스트 후 DB를 청소하는 등 동일한 문제가 발생하였고, 실제 답변은 "코드 블록"이 없기 때문에 혼란스러울 뿐이므로 다른 사용자의 시간을 절약하기 위해 문서/코드를 한 번 더 파헤쳐 주십시오.

Mongoose 컬렉션은 Mongodb 컬렉션을 확장합니다.

/* * section collection.http * http://mongoosejs.com/docs/api.html#collection-js * /

인터페이스 CollectionBase는 mongodb를 확장합니다.컬렉션 {

문서: http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html

접속도 마찬가지입니다.

require('mongoose')에 의해 표시되는 Connection 클래스는 실제로 드라이버의 NativeConnection 클래스입니다.connection.blass는 네이티브버전이 확장되는 기본 클래스를 정의합니다.참조: http://mongoosejs.com/docs/api.html#drivers-node-mongodb-native-connection-js

따라서 수집/접속 시 모든 "RAW" 작업을 수행할 수 있습니다.

 var connection = mongoose.connection;

그 후, 다음과 같이 합니다.

1. 데이터베이스를 삭제합니다.

connection.dropDatabase()

2. 컬렉션을 작성하다

connection.collection('newcollection') // creates if not exists

3. 컬렉션에 데이터 쓰기

connection.collection('mybenotnewcollection').bulkWrite([
  { insertOne: { whatewer: { you: 'need' } } },
]);

4. 컬렉션 삭제

이는 분명 질문이 아닙니다. findAll, find, aggregate, all all all all all all all all allowed (문서 참조)

5. 컬렉션을 드롭하다

connection.collection('notsonewcollection').drop()
const mongoose = require('mongoose');
mongoose.connect(uri, options);
var db = mongoose.connection;
db.once('open', function () {
  db.collection('collection').find().toArray(function(err, result){
        console.log(result);
  });
}

mongoose 오브젝트는 네이티브 mongo 드라이버에 접근할 수 있는 mongo 프로토타입을 가지고 있습니다.

mongoose.mongo

언급URL : https://stackoverflow.com/questions/10519432/how-to-do-raw-mongodb-operations-in-mongoose

반응형