Всем привет, я собираюсь в Деменстрат и объясню запутанную тему Mongodb / Монгуз это “Opulate ()” функция
Постановка задачи:
Предположим, у вас есть 2 модель схемы с именем: 1 – Адрес модель 2 – пользовательская модель
Адресная модель : В этом есть 3 атрибута, т.е. PINCODE , Государство , адрес
const mongoose = require("mongoose"); const Schema = mongoose.Schema; const addressSchema = new Schema({ address: String, state: String, pincode : Number }); const Address= mongoose.model("address", addressSchema); module.exports = Address;
Пользовательская модель : В этом есть 3 атрибута, т.е. имя , адрес и обозначение.
const mongoose = require("mongoose"); const Schema = mongoose.Schema; const {ObjectId} = mongoose.Schema; const userSchema = new Schema({ name: String, designation: String, address: { type : ObjectId, ref : "address" } }); const User = mongoose.model("user", userSchema); module.exports = User;
Решение:
Вы видите модификацию в Пользовательская модель ? Добавление:
address: { type : ObjectId, ref : "address" }
вносит все изменения здесь.
Мы здесь не делаем запись в Пользовательская модель S адрес раздел но Вместо этого используя адрес модель для хранения данных и использует его __id _ в Пользовательская модель Анкет
И на момент извлечения данных из Пользовательская модель мы будем Заполнять адрес атрибут из Адресная модель Анкет
Что такое идентификатор объекта?
const {ObjectId} = mongoose.Schema;
а также
type : ObjectId,
ObjectId это один из Типы данных Монгуза, который говорит мангузе, что это ссылается к другому Коллекция в База данных MongoDB .
После Импорт , он используется вместе с ref Анкет
Что такое реф?
Теперь, ObjectId используется вместе с ref Анкет Ref рассказывает Монгуз что, в котором Коллекция Данные импорта раны настоящий Анкет В нашем случае это Адресная модель _, который импортируется и используется в Пользовательская модель Анкет Так,
address: { type : ObjectId, ref : "address" }
Примечание : значение в ref так же, как
const Address= mongoose.model("address", addressSchema);
в Адресная модель _.
Наконец с использованием opulate ()
Итак, теперь пришло время получить данные из Пользовательская модель и на момент извлечения, заполняя адрес Атрибут Пользовательская модель с данными из Адресная модель Анкет
Предположим, __id _ данных в Адресная модель это 100 . Итак, в Время входа данные в Пользовательская модель , пройти __id _ т.е. 100 к Атрибут адреса из Пользовательская модель Анкет
User.find({}).populate("address").exec((err, result) => { if(err){ return res.json({error : err}) } res.json({result : result}) });
.populate (“адрес”) заполнит данные, поступающие с User.find ({}) и найти __id _ Присутствует в (в нашем случае __id _ IS 100), и обнаружите это в Адресная модель и возьмите эти данные и заполните в Пользовательская модель Анкет
Благодарю вас
Спасибо за то, что вы были терпеливы и читали до последнего, надеюсь, вы найдете это полезным. 🙂🙂🙂
Мой портфолио : https://anujportfolio.herokuapp.com/ Мой GitHub : https://github.com/singhanuj620 Мой LinkedIn : https://www.linkedin.com/in/anuj-singh-007/
Обратная связь всегда приветствуется. 🤗 🤗
Оригинал: “https://dev.to/singhanuj620/mongoose-populate-in-most-simple-way-how-to-import-a-collection-into-another-schema-in-mongodb-4nnf”