代码之家  ›  专栏  ›  技术社区  ›  JavaSheriff

MongoDB填充平面文件结果?

  •  2
  • JavaSheriff  · 技术社区  · 6 年前

    我正在尝试从文件系统中删除旧文件
    文件列表在MongoDB集合中维护,如下所示:

    {
        "_id" : ObjectId("59a39215953f77968789d692"),
        "className" : "com.xerox.model.ModuleDocument",
        "documentId" : "0000001643",
        "documentDate" : ISODate("2017-05-11T04:00:00.000Z"),
        "documentType" : "PRINTER_VALIDATION_2017",
        "module" : "PRINTERS",
        "printerId" : "1002563",
        "origFileName" : "0000001643.JPG",
        "isDeleted" : true
    }
    

    但是当我使用mongo shell查询数据库时

     db.getCollection('xerox_documents').find({"isDeleted":true})
    

    结果显示为json, 是否可以以纯文本格式获取结果? 所需输出如下:

    DEL c:\DOCS\PRINTERS\PRINTER_VALIDATION_2017\0000001643.JPG  
    DEL c:\DOCS\PRINTERS\PRINTER_VALIDATION_2017\0000001643.JPG
    
    2 回复  |  直到 6 年前
        1
  •  2
  •   Marco Luzzara    6 年前

    db.getCollection('xerox_documents').find({"isDeleted": true}).forEach(elem => {
        print(`DEL c:\\DOCS\\${elem.module}\\${elem.documentType}\\${elem.origFileName}`);
    });
    

    print() find() cursor forEach Array.forEach

    Cursor

    • next() hasNext()
    • Cursor.toArray()

        2
  •  2
  •   Ashh    6 年前

    $concat

    db.getCollection('xerox_documents').aggregate([
      { "$match": { "isDeleted": true }},
      { "$project": {
        "origFileName": {
          "$concat": [ "c:\DOCS\PRINTERS\PRINTER_VALIDATION_2017\", "$origFileName" ]
        }
      }}
    ])