복붙노트

[MONGODB] 몽구스 - 포스 콜렉션 이름

MONGODB

몽구스 - 포스 콜렉션 이름

나는 데이터베이스와 데이터베이스의 컬렉션을 만들 수 몽구스를 사용하는 것을 시도하고있다. 내 코드는 다음과 같습니다

var mongoose = require('mongoose');
    var db = mongoose.connect('mongodb://localhost/testdb');
    var Schema = mongoose.Schema;

    var UserInfo = new Schema({
    username : String,
    password : String 
    });

    mongoose.model('UserInfo', UserInfo);

    var user = db.model('UserInfo');


    var admin = new user();
    admin.username = "sss";
    admin.password = "ee";
    admin.save();

이 코드를 실행하면, 대신에 사용자 정보의 사용자 정보라는 이름의 생성 수집 몽구스. 어떻게 몽구스의 컬렉션 이름을 강제로?

해결법

  1. ==============================

    1.이 그것을해야

    이 그것을해야

    var UserInfo = new Schema({
      username : String,
      password : String 
    }, { collection: 'userinfo' });
    

    자세한 내용은 몽구스 문서에서이 링크를 참조하십시오.

  2. ==============================

    2.당신은 몽구스 2.0.0를 사용하는 경우, 세 번째 인수로 collectionName 사용을 통과

    당신은 몽구스 2.0.0를 사용하는 경우, 세 번째 인수로 collectionName 사용을 통과

    mongoose.model('UserInfo', UserInfo, 'UserInfo');
    
  3. ==============================

    3.몽구스는 기본적으로 컬렉션 이름에 's'를 추가합니다. 당신이를 피하려면, 단지 세 번째 인수로 컬렉션의 이름을 전달 :

    몽구스는 기본적으로 컬렉션 이름에 's'를 추가합니다. 당신이를 피하려면, 단지 세 번째 인수로 컬렉션의 이름을 전달 :

    var mongoose = require('mongoose');
    var db = mongoose.connect('mongodb://localhost/testdb');
    var Schema = mongoose.Schema;
    
    var UserInfo = new Schema({
        username: String,
        password: String 
    });
    
    mongoose.model('UserInfo', UserInfo, 'UserInfo')
    
    tan = new user();
    admin.username = 'sss';
    admin.password = 'ee';
    admin.save();
    
  4. ==============================

    4.mongoose.model의 API 구조는 이것이다 :

    mongoose.model의 API 구조는 이것이다 :

    Mongoose#model(name, [schema], [collection], [skipInit])
    

    무엇 몽구스하는 일은 더 수집 인수가 전달되지 않은 경우, 몽구스 모델 이름을 복수화하여 컬렉션 이름을 생산한다는 것입니다. 당신이이 동작이 마음에 들지 않는다면 컬렉션 이름을 전달하거나 스키마 수집 이름 옵션을 설정 중 하나.

    예:

    var schema = new Schema({ name: String }, { collection: 'actor' });
    

    또는

    schema.set('collection', 'actor');
    

    또는

    var collectionName = 'actor'
    var M = mongoose.model('Actor', schema, collectionName);
    
  5. ==============================

    5.여기 몽구스 메인테이너. 우리는 mongoose.model 일을하는 것이 좋습니다 ( '사용자 정보', 사용자 정보를, '사용자 정보') mongoose.model에 ;, 세 번째 인수는 () 컬렉션의 이름입니다. 여기에 관련 문서를합니다.

    여기 몽구스 메인테이너. 우리는 mongoose.model 일을하는 것이 좋습니다 ( '사용자 정보', 사용자 정보를, '사용자 정보') mongoose.model에 ;, 세 번째 인수는 () 컬렉션의 이름입니다. 여기에 관련 문서를합니다.

  6. ==============================

    6.당신은 당신의 스키마 컬렉션 이름을 설정해야합니다.

    당신은 당신의 스키마 컬렉션 이름을 설정해야합니다.

    new Schema({...},{collection: 'userInfo'});
    
  7. ==============================

    7.대답:

    대답:

    mongoose.model('UserInfo', UserInfo, 'userinfo'); //3rd parameter 'userinfo': as collection name
    
    Mongoose.model(name, [schema], [collection], [skipInit])
    

    매개 변수 설명 :

  8. ==============================

    8.모델 이름 : userInfo.js

    모델 이름 : userInfo.js

    명시 적 경로의 파일이나 app.js에

    var mongoose = require('mongoose');
    mongoose.connect('mongodb://localhost/testdb');
    

    다음 userInfo.js에서

    var mongoose = require('mongoose');
    var Schema = mongoose.Schema;
    var UserInfo = new Schema({
     username : String,
     password : String 
    });
    module.exports = mongoose.model('UserInfo', UserInfo);
    
  9. from https://stackoverflow.com/questions/7486528/mongoose-force-collection-name by cc-by-sa and MIT license