я получил этот код в клиенте Монго, который производит то, что я ожидал:запросов внутри запроса терпит неудачу с узлом родной драйвер
db.bookings.find().forEach(
function(booking) {
booking.visitor = db.visitor.findOne({id:booking.visitor_id});
db.bookingsReloaded.insert(booking)
}
)
Код в узле 10.x и Монго родной драйвер (v2.1.x) выглядит следующим образом:
bookings.find({}).each(
function(err, booking){
if (booking == null){
...
} else {
booking.visitor = booking.findOne({id:booking.visitor_id});
bookingsReloaded.insert(booking);
}
});
Хотя после исполнения коды (заказов и посетителей являются существующими коллекциями) новая коллекция bookingsReloaded содержит ожидаемые результаты (посетитель док встроенный) при выполнении с клиентом Монго, код узла Безразлично Не работает, похоже, он даже не выполняет findOne s tatement.
Вероятно, что-то тривиальное, что я должен был знать, но я не :(
Джонни - спасибо за ответ к сожалению, это не решает проблему, я изменил код так что вставка находится внутри вызова findOne. wever, результат состоит в том, что код функции, вызываемой в findOne, не выполняется ... –
@RalphMueller Лучше всего добавлять комментарии, чтобы уточнить вместо редактирования ответов. В любом случае, спасибо за разъяснение, что это коллекция 'visitors', которая запрашивает' findOne'. Должен ли 'findOne' запрашивать поля' _id' вместо 'id'? – JohnnyHK
Упс, извините, я новичок. Во всяком случае - я перевел имена коллекций с немецкого языка для лучшего понимания. Так что это действительно visitors.findOne с идентификатором для посетителя, хранящегося в коллекции заказов. Тот же самый запрос visit.findOne работает, если я просто поставлю его в начале моего маленького тестового приложения, но не внутри кода, как показано в примере (теперь с помощью команды insert в функции, вызываемой findOne –