mongodb - русском - mongoose уроки




Mongoose-название коллекции Force (4)

Я пытаюсь использовать mongoose для создания базы данных и коллекции. Мой код:

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

Когда я запускаю этот код, mongoose создал коллекцию с именем UserInfo вместо userinfo. Как заставить имя коллекции в мангусте?


Вам нужно установить имя коллекции в вашей схеме.

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

Если вы используете mongoose 2.0.0, передайте имя коллекции в качестве третьего аргумента

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

Структура API mongoose.model такова:

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

Что такое мангуста, так это то, что, когда аргумент коллекции не передан, Mongoose создает имя коллекции, плюризуя имя модели. Если вам не нравится это поведение, либо передайте имя коллекции, либо укажите опцию имени коллекции схем.

Пример:

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

или

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

или

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

Это должно сделать это

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




mongoose