2016-11-21 5 views
0

Я новичок в узле, и я использую Feathersjs. Я пытаюсь использовать мангуст Заполнить, чтобы сделать связь между users и tasksMongoose populate in feathers

Моих моделями:

user-model.js

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

const userSchema = new Schema({ 
email: {type: String, required: true, unique: true}, 
password: { type: String, required: true }, 
tasks: [{ type: Schema.Types.ObjectId, ref: 'Task' }], 
createdAt: { type: Date, 'default': Date.now }, 
updatedAt: { type: Date, 'default': Date.now } 
}); 

var Task = mongoose.model('Task', storySchema); 
const userModel = mongoose.model('user', userSchema); 

module.exports = userModel; 

task-model.js

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

const taskSchema = new Schema({ 
title: { type: String, required: true }, 
_creator : { type: String, ref: 'User' }, 
createdAt: { type: Date, 'default': Date.now }, 
updatedAt: { type: Date, 'default': Date.now } 
}); 

var User = mongoose.model('user', storySchema); 
const taskModel = mongoose.model('task', taskSchema); 

module.exports = taskModel; 

Когда я добавить новую задачу , user.tasks все еще пуст:

> db.users.find().pretty() 
{ 
    "_id" : ObjectId("5832da6919756a0edc2dfc59"), 
    "email" : "[email protected]", 
    "password" : "$2a$10$DToGYQ8smdfsK4oJPXmcyOdIfxXEaQGO5P16AhzBlrpESUMt5baNi", 
    "updatedAt" : ISODate("2016-11-21T11:28:41.371Z"), 
    "createdAt" : ISODate("2016-11-21T11:28:41.371Z"), 
    "tasks" : [ ], 
    "__v" : 0 
    } 
> db.tasks.find().pretty() 
{ 
    "_id" : ObjectId("5832da7619756a0edc2dfc5a"), 
    "title" : "test", 
    "_creator" : "5832da6919756a0edc2dfc59", 
    "updatedAt" : ISODate("2016-11-21T11:28:54.470Z"), 
    "createdAt" : ISODate("2016-11-21T11:28:54.470Z"), 
    "__v" : 0 
} 

ответ

0

В MongoDB нет объединений, но иногда мы по-прежнему хотим ссылаться на документы в других коллекциях, как в вашем случае использования. Это где население приходит в

Таким образом, вы можете попробовать его с помощью mongoose следующим образом:.

User     // Mongoose model 
.find({}) 
.populate('tasks') // Populate referenced attributes 
.exec()    // Executes the query and return Promise 

Подробнее о населении в мангуста: http://mongoosejs.com/docs/populate.html

 Смежные вопросы

  • Нет связанных вопросов^_^