2016-02-12 2 views
0

с учетом следующих схем:MongoDB onetoone доступа соответствующие данные

Schemas.Book = new simpleSchema({ 
    "name": { 
    type: String 
    }, 
    "publisher: { 
    type: Schemas.Publisher 
    } 
}); 

Schemas.Publisher = new simpleSchema({ 
    "name": { 
    type: String 
    } 
}); 

Если я находке запрос на схеме книги, как я могу вернуть один к одному, связанных Publisher, пожалуйста?

например: db.book.find({}); в настоящее время возвращается:

{ "_id": ObjectId("objectid"), "name": "Book 1", "publisher": ObjectId("pubObjectId") } 

Мне нужно разрешить publisher.name. Надеюсь, что это достаточно ясно.

+0

показать некоторые примеры данных и показать ваш конечный результат ожидается – dansasu11

ответ

0

Mongo не предоставляет операцию JOIN, поэтому вам нужно сделать это в своем приложении. Что-то вроде:

var PublisherId = db.book.findOne({'name':'Book 1'})["publisher"] 
var PublisherName= db.publisher.findOne({'_id': PublisherId })["name"] 
+0

Привет Спасибо за ваши ответы. Я ожидал и надеялся сформировать набор результатов, который включал бы весь объект Book и его родственное имя издателя. Что-то вроде {"_id": BookObjectId, "Bookname", "PublisherName"} – user1496093

+0

И Петр, спасибо. Можно ли добиться этого с помощью преобразования? так что все запросы на книги разрешают соответствующим издателям? – user1496093

+0

Например, если я пытаюсь использовать вспомогательный шаблон: getPublisher: function() { return Publish.findOne ({'_ id': this._id}); }, Если этот экземпляр экземпляра книги ничего не возвращает. – user1496093

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