我是Mongo的新手,并且已经尝试过Mongoose的Node.js。

我的问题特别是关于在“查找”中形成结果的方式。
假设模式如下所示,具有三个属性。

 var schema = {
    attr1: {
        type: String,
        required: true
    },
    attr2: {
        type: String,
        required: true
    },
    attr3: {
        type: Number,
        required: true
    }


我们将搜索所有以“ attr1”为“ value1”的条目,如下所示

dataModel.find({'attr1':'value1'}, {attr2:1, attr3:1, _id:0}, resultsFunction)


'resultsFunction'将以所有对象的数组形式接收结果文档。假设我们有两个结果,看起来像这样

[  { attr2: value1 ,
     attr3: value2 },
   { attr2: value3,
     attr3: value4 }]


这就是我在努力的目标。我不希望结果对象具有与架构相同的属性名称。相反,我希望将其转换为自定义对象

[  { customAttr2: value1 ,
     customAttr3: value2 },
   { customAttr2: value3,
     customAttr3: value4 }]


有没有一种方法可以从Mongodb的API中搜索和形成此类对象? (而不是编写自己的可能影响性能的转换/函数)

最佳答案

dataModel.aggregate([{$match:{'attr1':'value1'}}, {$project:{customAttr2:"$attr2", customAttr3:"$attr3", _id:0}}], resultsFunction)

09-30 19:21