我是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)