Оболочка MongoDB: печать результатов - PullRequest
0 голосов
/ 30 июня 2018

Если я выполню ТОЛЬКО 1-ю часть следующего короткого скрипта в Robo3T, я выведу результаты на экран. Если я выполню его со второй частью, я получу только стандартный ответ «Сценарий выполнен успешно, но нет результатов для показа».

Как я могу напечатать промежуточные результаты, такие как ожидаемые для 2-й части?

Я уточняю, что концессия и миссия - это похожие объекты JSON. Я потратил часы на этот простой вопрос. Пожалуйста, помогите.

   var mission = db.mission.find({"googleCalendarEventId":"QiVJdbL"});
while (mission.hasNext()) {
    var record = mission.next();   
    print(record.googleCalendarEventId + "," + record.concessionIdSet[0])
};

// 2nd part //

var concession = db.cursor.findOne({"_id": ObjectId(mission.concessionIdSet[0])});
while (concession.hasNext()) {
    var record = concession.next();   
    print(record)
};

1 Ответ

0 голосов
/ 01 июля 2018

Еще раз спасибо @stennie, для других, у которых были бы такие же проблемы, вот один код, который работал для меня и 2 ошибки, которые я совершил: 1 / разница между find (-> курсор) и findOne (-> 1 элемент) 2 / действия в цикле должны были быть вложены в цикл -> я использовал функцию, и она работает:

const missions = db.mission.find({
   $and:[{"concessionToInvoice": {$exists: false}},
   {"concessionIdSet":{$size:1}}]
}); 
  missions.forEach((mission) => {
   const concession = getConcession(mission);
   print(mission.googleCalendarEventId+"- invoice to :"+concession.name);
   mission.concessionToInvoice = getConcessionToInvoice(concession); //another function
   db.mission.save(mission);
});

function getConcession(mission){
       const concession = db.concession.findOne({"_id": ObjectId(mission.concessionIdSet[0])});
       return concession;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...