Mongodb查询文档没有唯一字段的唯一结果

时间:2018-06-07 08:30:19

标签: mongodb mongoose

让我们说我们的模型就像:

var schema = mongoose.Schema({
  doc: String
});
var Schema = mongoose.model('Collection', schema);

doc不是唯一的,我们可以有很多相同的。现在我想查询10个具有唯一doc值的最新文档。 如果最新的10个文档具有相同的值,则只有一个应该被提取,而其他9个应该被提取。 忽略查询字段doc的唯一性,我们会有类似的东西:

Schema.find({}).sort({'_id': -1}).limit(10).exec(function(err, docs) {
     // those docs here can have same value of doc field.
});

我现在用javascript做什么,解决了这种情况,但查询很重:

var same = {};
for (var i = docs.length - 1; i >= 0; i--) {
    if(same[docs[i].doc]) docs.splice(i, 1);
    else same[docs[i].doc] = true;
}
docs = docs.slice(0, 9);

0 个答案:

没有答案