如何使用Mongoose的两个模式获取数组中每个“ id”的最后一个文档?

时间:2019-04-09 22:01:15

标签: javascript node.js mongodb mongoose

我正在将Node.js与Mongoose结合使用,并具有两个模式:UserFriend。两者都有一个公共字段:accountId

用户:

const UserSchema = new mongoose.Schema({
    username: String,
    accountId: String,
    fnApiId: Number,
    epicName: String,
    seasonWindow: String,
    devices: [String],
    data: Object,
    overallData: Object,
    dateAdded: {
        type: Date,
        default: Date.now
    },
})

const User = mongoose.model('User', UserSchema)

朋友:

const FriendSchema = new mongoose.Schema({
    accountId: {
        type: String,
        required: true,
        unique: true,
    },
    mainDevice: {
        type: String,
        required: true,
        enum: ['keyboardmouse', 'gamepad', 'touch']
    },
    dateAdded: {
        type: Date,
        default: Date.now
    },
})

const Friend = mongoose.model('Friend', FriendSchema)

我的数据库有很多用户,但只有几个朋友,因为AccountId的{​​{1}}是唯一的,而Friend却不是,这意味着我有很多同一User的文档。

我只想根据数据库中每个User的{​​{1}}找到User的最后一个匹配项(忽略所有不是朋友的用户),并返回一个JSON,其中添加了-dateAdded中的Friend字段。

我已经尝试了几件事,但是没有成功。

mainDevice

有人可以帮助我吗?

谢谢

0 个答案:

没有答案