const taskScheme = new Schema({
youtrackID: {
type: Number,
default: 0,
},
name: {
type: String,
required: true,
},
text: {
type: String,
required: true,
},
priority: {
type: Number
},
user:{
// не знаю как сослаться на элемент существующей в БД коллекции.
},
});
const mongoose = require("mongoose");
const Schema = mongoose.Schema;
// подключение
mongoose.connect("******", { useNewUrlParser: true });
//создаём схему и модель для вложенной колекции.
const userScheme = new Schema({
name: String,
age: Number
});
const User = mongoose.model("User", userScheme);
//создаём схему и модель для основной колекции.
const taskScheme = new Schema({
user: [{ type: Schema.Types.ObjectId, ref: 'User' }], //свойство-ссылка на МОДЕЛЬ дочерней коллекции
text: String
});
const Task = mongoose.model("Task", taskScheme);
//вот так выглядит создание документа со ссылкой на документ из другой коллекции
const task = new Task({
user: mongoose.Types.ObjectId("5c17505032389130da703ab0"), //_id документа user который нам нужен.
text: "Task Text Example",
});
task.
save(function(err){
mongoose.disconnect(); // отключение от базы данных
if(err) return console.log(err);
console.log("Сохранен объект", task);
});
//вот так посиск с подзапросом содаржимого дочернего элемента.
Task.
findById("5c17538f570dc7339c732b3b").
populate('user').
exec(function (err, docs) {
console.log(docs);
});