Какой запрос я использую для возврата уникальных строк в <Model>.find () - PullRequest
0 голосов
/ 19 апреля 2020

Я делаю приложение node.js - Ornament Manager с использованием MongoDB и mon goose.

У меня есть коллекция со следующей схемой: -

var DetailsSchema = new Schema({
owner: {type:Schema.Types.ObjectId, ref: 'owner', required:true},
ornament: {type:Schema.Types.ObjectId, ref:'Ornament', required:true},
location:{type:Schema.Types.ObjectId, ref:'Location', required:true},
date: {type:Date, required:true, default: Date.now()}

Every Когда владелец удаляет орнамент из определенного местоположения, запись будет вставлена ​​в коллекцию, а не обновлена ​​для работы истории. Я хотел бы вернуть все орнаменты, присутствующие в данном месте.

Details.find({location: req.params.id},'ornament')
.populate('ornament')
.exec((err,results)=>{
    if(err){return next(err);}
    res.render('location_detail',{results:results})
})

Это возвращает все орнаменты, которые присутствовали и также присутствовали в какой-то момент времени. Чтобы устранить избыточность и неправильные данные, я хочу вернуть только те поля, которые имеют самую последнюю дату (для документов, имеющих одинаковые ownerID и ornamentID) и присутствующие в locationID: req.params.id

Любой обходной путь будет быть оцененным.

1 Ответ

0 голосов
/ 20 апреля 2020

Добавлено неактивное поле даты, которое будет автоматически меняться на Date.now () при совершении транзакции. Вопрос решен

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...