2016-12-15 3 views
0

У меня есть follwing схемы:Mongoose Populate Cast Ошибка

// online.js 
var mongoose = require('mongoose'); 

// Online Friends 
var onlineSchema = mongoose.Schema({ 
    userid:{ type: Number, ref:'Player' } 
},{timestamps : true}); 


// Export 

module.exports = mongoose.model('Online', onlineSchema); 


//player.js 
var mongoose = require('mongoose'); 

// define the schema for player data 
var playerSchema = mongoose.Schema({ 
    userid : { type: Number, required: true,unique:true, default: 0 }, 
    firstname : { type: String }, 
    nick : {type: String, required: true}, 
    lastname : {type: String}, 
    lastupdate: {type: Date, default: Date.now} 
},{timestamps : true}); 


// create the model and expose it to our app 
module.exports = mongoose.model('Player', playerSchema); 


//main.js 
... 
const Online = require('./config/models/online.js'); 
const Player = require('./config/models/player.js'); 

Online.find({userid:3441341}).populate('userid').exec(function(err,result){ 
    if (err) { 
    console.log(err); 
    } else { 
    console.log(result); 
    } 
}); 

... 

Я хочу искать Интернет для идентификатора пользователя, а затем напечатать имя пользователя, не совсем уверен, что я делаю неправильно. Это ошибка, я получаю:

MongooseError: Cast to ObjectId failed for value "3441341" at path "_id" 

Что такое правильный способ для достижения этой цели?

+0

Не могли бы вы показать свои другие модели? – Codearts

+0

Эти 2 являются единственными, которые пересекаются. – Trax

ответ

1

Измените тип пользователя с Number на mongoose.Schema.ObjectId, и он должен работать. В основном это говорит о том, что вы пытаетесь присвоить номер идентификатору объекта. Передайте идентификаторы как строки. В NoSQL DBS ваши документы должны иметь поле _id. У вас есть модель пользователя или вы используете Player для работы? Если вы используете Player as User model, измените user_id на _id

+0

Передача объекта ObjectId не выполнена для значения «1299304» по пути «userid» для модели «Интернет». Я проверяю номер пользователя, не должен ли тип быть номером? – Trax

+0

Вы пытались изменить типы пользователей с номера на mongoose.Schema.ObjectId? – Codearts

+0

Да, вот откуда появилась новая ошибка. – Trax

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