MongoDB Shell-打印数组的第一个元素

时间:2018-12-19 15:03:21

标签: mongodb

我正在尝试使用“ NoSQL Manager for MongoDB 4.9.10.2”中的函数print打印数组的第一个元素。我正在尝试执行以下操作:

npm install

但是我遇到下一个错误:

    var start = ISODate("2018-12-18T03:00:00.000Z"); 
var end = ISODate("2018-12-19T02:59:59.000Z"); 

db.moicaTickets.aggregate([

    { $match : 
        { asunto:{$exists:true},
          asunto: {$ne:null},
          tiempos:{$exists:true}, 
          tiempos: {$ne:null},
          problemas:{$exists:true},
          creado:{$exists:true}, 
          "creado.lastEvent_tc": { $gt: start, $lt: end } }},
    { $project: 
        { pFecha: { $dateToString: { format: "%Y-%m-%d", date: "$creado.lastEvent_tc", timezone: "-03:00" } }, 
        asunto: 1, 
        tiempos: 1, 
        nroTkt: 1,
        losProblemas: { $arrayElemAt: ["$problemas",0]},
        primerProblema: "$losProblemas.nombre",
        primera: { $arrayElemAt: ["$tiempos",0]}}},
    { $addFields: { "lacola":{ "$toObjectId": "$primera.cola" }}},
    { $lookup:
       {
         from: "moicaTicketsColas",
         localField: "lacola",
         foreignField: "_id",
         as: "nombreCola"
         }}

         ]).forEach(function(doc){
         print(doc.nroTkt+";"+doc.nombreCola.0.arbol+";"+doc.pFecha+";"+doc.asunto.titulo+";"+doc.primerProblema);
})

1 个答案:

答案 0 :(得分:1)

我解决了它,查询之外的内容是JavaScript,因此打印数组(在这种情况下,获取第一个元素)的正确方法是:

print(doc.nroTkt+";"+doc.nombreCola[0].arbol+";"+doc.pFecha+";"+doc.asunto.titulo+";"+doc.primerProblema);

谢谢!