2014-11-08 4 views
0

Я попытался запустить этот запрос в моей nodeJs приложениеВыполнение запросов встроенных документов в MongoDB

Book.find({'user._id': '545e2915cd91299447fdb8d7'}).populate('user').exec(function(err, books){...}

и он не работает (она возвращает пустой список), но я попытался запустить этот запрос в ЦМД с помощью Монго и он работал. Кто-нибудь может мне помочь, пожалуйста!

здесь схема книги:

var mongoose = require('mongoose'), 
    Schema = mongoose.Schema, 
    path = require('path'); 

/** 
* Book Schema 
*/ 
var BookSchema = new Schema({ 
    title: { 
     type: String, 
     trim: true, 
     required: 'Title is missing' 
    }, 
    created: { 
     type: Date, 
     default: Date.now 
    }, 
    user: { 
     type: Schema.ObjectId, 
     ref: 'User' 
    } 
}); 

mongoose.model('Book', BookSchema); 

ответ

0

Наконец я понять, где была проблема. Проблема заключалась в том, что я вручную создавал книги в оболочке mongo, и по какой-то неизвестной причине она не работала, но когда я сохранял книгу в приложении, работал запрос с идентификатором пользователя. Я не понимаю, почему (потому что не должно быть никакой разницы при входе в оболочку mongo и сохраняется в приложении), но он работает.

+0

'user._id' должен быть ObjectId, а не строкой, как в вашем запросе. Вероятно, это источник проблемы. – wdberkeley

+0

Да, при создании я должен использовать ObjectId («507f1f77bcf86cd799439011») вместо строки - «507f1f77bcf86cd799439011» – mark

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