我尝试进行查询以输出具有特定元素的文档,但也只有另一个唯一元素,例如:
Temp.find({ UId: UserID }).sort({ "created_at" : -1 }).exec( function (err, data) {
console.log(data + " " + err);
callback(data);
});
}; 返回:
{
"updatedAt": "2017-05-23T18:18:19.000Z",
"created_at": "2017-05-23T18:18:19.000Z",
"UId": "58f8954c3602b80552b6f1fb",
"value": 69,
"SerialNumber": "IIOJOIMJ",
"_id": "59247cebd96d5406651c791e",
"__v": 0
},
{
"updatedAt": "2017-05-23T16:34:22.000Z",
"created_at": "2017-05-23T16:34:22.000Z",
"UId": "58f8954c3602b80552b6f1fb",
"value": 70,
"SerialNumber": "IIOJOIMJ",
"_id": "5924648e56628d005ad15f0e",
"__v": 0
}
但我希望查询只返回不同的元素,以便只返回2个文档中的一个 我试着这样做:
Temp.find({ UId: UserID }).sort({ "created_at" : -1 }).distinct('SerialNumber', function (err, data) {
console.log(data + " " + err);
callback(data);
});
但是这会导致我的应用崩溃。我怎样才能最好地解决这个问题?
谢谢!
修改
我看了@gaganshera解决方案,它的确有效!但它是否也可以用它来制作文件的其余部分?
答案 0 :(得分:1)
使用distinct
功能,您可以像这样指定条件和不同的列
Temp.distinct('SerialNumber', { UId: UserID })