#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
сколько захотите, и использовать это.