我的数据库看起来像:
{email:"user", contacts:
[
{emailContact:"test", firstName:"test", lastName:"test", messages:
[
{email:"user", content:"hi", date:"ISODate(...)"}
{email:"test", content:"how are you?", date:"ISODate(...)"}
{email:"user", content:"im fine", date:"ISODate(...)"}
]
},
{emailContact:test2, firstName:"test2", lastName:"test2", messages:
[
{email:"user", content:"hahaha", date:"ISODate(...)"}
{email:"test2", content:"yea thats right", date:"ISODate(...)"}
{email:"user", content:"xd", date:"ISODate(...)"}
]
}
]
}
我需要从具有给定联系人的特定用户获取最后两条消息。
我已经试过几个类似的:
db.contacts.aggregate([{$match:{email:"user",emailContact:"test"}},{$unwind:{'contacts.messages'}},{$sort:{'contacts.messages.date':1,'contacts.messages.content':1,'contacts.messages.emailContact':1}},{$group:{who:'$email', content:'$content', date:{$last:'$date'}}}])
谢谢你的帮助