Как связать модель мангуста с нужной коллекцией MongoDB в приложении Express.js? - PullRequest
0 голосов
/ 24 декабря 2018

как указать конкретную коллекцию в mongodb с помощью mongoose ORM в приложении express js.

NA

var mongoose = require('mongoose');
var Schema = mongoose.Schema;

var personSchema = new Schema({
 name: String,
 age: Number
});

module.exports = mongoose.model('person', personSchema);

учитывая, что в моей базе данных mongo есть несколько коллекций, так как мой приведенный выше код будет указывать на конкретную коллекцию.

Ответы [ 3 ]

0 голосов
/ 24 декабря 2018

Если у вас есть определенная коллекция, в которую вы хотите включить документы, основанные на конкретной модели, вы можете использовать mongoose.model('person', personSchema, collection).

Или вы можете назвать желаемую связанную коллекцию в определении схемы:

var dataSchema = new Schema({..}, { collection: 'data' });

https://mongoosejs.com/docs/guide.html

0 голосов
/ 25 декабря 2018

Мне очень жаль, что мой выбранный ответ не точный.Я не могу удалить это, потому что это принято.Точный ответ на ваш вопрос: mongoose.model('person', personSchema); автоматически создаст версию названия модели для нескольких строчных букв. В этом случае он автоматически создаст коллекцию persons в mongoDB, если она еще не существует.Если вы хотите изменить это поведение по умолчанию, вы можете сделать это следующим образом:

var personSchema = новая схема ({name: String, age: Number}, {collection: 'people'});

или

mongoose.model( 'person', personSchema, 'people' ), поэтому вы называете его персоной, но именем коллекции будут люди

0 голосов
/ 24 декабря 2018

Обычно мы следуем соглашению именования множественного числа в mongoDB.Например, в MongoDB мы создаем users таблицу, но используем единственное число в Node.js.Таким образом, экспорт будет:

module.exports = mongoose.model('users',UserSchema)

И в другом сценарии мы требуем его следующим образом: const User=require('<pathToModel>/user')

Это означает, что мы называем модель User, этооснованный на UserSchema, и коллекция, связанная с этим, является users

В вашем коде вы можете сделать это:

module.exports = mongoose.model('person', personSchema); 
...