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

如何将Mongodb中的输出结果定制为另一个结构?

  •  0
  • yavg  · 技术社区  · 6 年前

    我是新手 MongoDB ,我的母语是西班牙语。所以我不知道如何找到我需要的。

    我会尽量让自己明白。

    我执行这个查询,结果是一个数组。

    例如:

    Users.find({passport:123, (err, result) => {
       //output of result
       [ 
         {"nombre":"pedro","apellido":"jose"},
         {"nombre":"pablo","apellido":"jacinto"},
         {"nombre":"jose","apellido":"berta"},
       ]
    

    我想知道是否有更有效的方法来做一些事情,以便使用mongodb的一些功能,我可以自定义输出,以避免这样做:

    所需输出:

       [ 
         {"name":"pedro","lastname":"jose"},
         {"name":"pablo","lastname":"jacinto"},
         {"name":"jose","lastname":"berta"},
       ]
    

    有没有办法直接处理mongoDB的输出信息?

    0 回复  |  直到 6 年前
        1
  •  1
  •   whoami - fakeFaceTrueSoul    6 年前

    你需要使用MongoDB的 Aggregation 为此:

    db.collection.aggregate([
      /** Filter docs based on criteria */
      {
        $match: {
          passport: 123
        }
      },
      /** Transform fields into required form */
      {
        $project: {
          name: "$nombre",
          lastname: "$apellido"
        }
      }
    ])
    

    测试: MongoDB-Playground

    裁判: $match , $project