MongoDB / javascript /node.js /typescript: как подключиться к двум моделям mongoose?

#javascript #node.js #mongodb #typescript #mongoose

#javascript #node.js #mongodb #typescript #mongoose

Вопрос:

Я создаю API и работаю с MongoDB как с базой данных, я уже создал одну модель: в database.ts

 import mongoose = require('mongoose');

const schema = new mongoose.Schema({
    id: String,
    username: String,
    gender: String,
    birthdate: String,
    password: String
});

export default mongoose.model('users', schema);
  

я подключаюсь к базе данных с помощью :

 mongoose.connect('mongodb://localhost:27017/users', {useNewUrlParser: true});
  

в app.ts.

В utils.ts я импортировал модель следующим образом :

 import userDB from './database';
  

и, например, для извлечения всех пользователей внутри базы данных я использую это (все еще в utils.js ) :

   const users = await userDB.find();
  

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

Я пытался выполнить поиск на большинстве веб-сайтов, но не нашел правильного ответа.

Я надеюсь, вы сможете мне помочь.

Заранее благодарю вас.

PS: это мой первый пост здесь, поэтому, если я сделал что-то не так или моя проблема неясна, не стесняйтесь сообщить мне

Ответ №1:

Когда вы подключаетесь к базе данных, вы должны подключаться к проекту, а не к своему schema вот так

 mongoose.connect('mongodb://localhost:27017/myProject', {useNewUrlParser: true});
  

Вы можете заменить myProject любое имя, которое вам нравится. Если проект не существует, он будет создан после запуска вашего сервера и подключения MongoDB.

Затем для извлечения всех пользователей вы можете использовать это

 import User from './user'; //Wherever your schema is

const Allusers = await User.find();
  

Теперь вы можете создать столько, Schema's сколько захотите, и использовать это.