我有一个会话模型和一个消息模型,显然每条消息都属于会话,但是我想在每次查询会话时都检索最后一条消息,我试图使虚拟填充正常工作,但是没有运气,
这是我的对话模式
import {getMinutes, setMinutes, setSeconds, setMilliseconds} from 'date-fns'
let date = new Date();
let min = getMinutes(date);
let interval = 3 // in minutes
let new_min = min - min%interval + interval;
let new_date = setMilliseconds(setSeconds(setMinutes(date,new_min),0),0)
console.log('Orignal Date : ' + date);
console.log('Original Minute : ' + min);
console.log('New Minute : ' + new_min);
console.log('New Date : ' + new_date);
这是我的消息模型
const mongoose = require('mongoose');
const mongoosePaginate = require('mongoose-paginate');
const Schema = mongoose.Schema;
const model = new Schema({
senderId: String,
client: {
type: Schema.Types.ObjectId,
ref: 'client'
},
agent: {
type: Schema.Types.ObjectId,
ref: 'agent'
},
channel: {
type: Schema.Types.ObjectId,
ref: 'channel'
},
app: {
type: Schema.Types.ObjectId,
ref: 'app'
},
organization: {
type: Schema.Types.ObjectId,
ref: 'organization'
},
assignee: {
type: Schema.Types.ObjectId,
ref: 'supervisor'
}
}, {
timestamps: {
createdAt: 'created_at',
updatedAt: 'updated_at'
}
})
model.virtual("messages", {
ref: "messages",
localField: "_id",
foreignField: "conversation",
justOne: true
});
model.set('toJSON', {
virtuals: true,
versionKey: false,
transform: (doc, ret) => {
delete ret._id;
return ret;
}
})
model.plugin(mongoosePaginate)
module.exports = mongoose.model('conversation', model)
由于某种原因,我不知道模型在创建时会变得多元,是否会导致问题。