我的医生:
"_id" : "bf63XML4bo6CrfP9A",
"comments" : [
{
"user" : "fzkhiAArD4mgAAjbL",
"comment" : "what the hell are you doing in there?",
"commentedAt" : 1422367883366
},
{
"user" : "fzkhiAArD4mgAAjbL",
"comment" : "tada tada",
"commentedAt" : 1422368379037
},
{
"user" : "fzkhiAArD4mgAAjbL",
"comment" : "la la la la la",
"commentedAt" : 1422368393536
},
{
"user" : "fzkhiAArD4mgAAjbL",
"comment" : "no no no",
"commentedAt" : 1422368409692
}
],
"feed_id" : "ym8To4cdwwTcSczkS",
我想发送此文档中最近的3条评论,怎么做?
我尝试了不同的东西,没有任何工作
mycoll.find({_id:res._id},{fields:{sort: {commentedAt: 1}},fields: {comments:{$slice: 3}}});
FYO
我想在发布功能中使用它。
答案 0 :(得分:0)
据我所知,您无法对评论进行排序,然后对其进行切片,只对其进行切片。如果你真的需要排序和切片,你应该使用transform,虽然我认为这在计算上会更昂贵。
但是,如果您按时间顺序将评论推送到阵列上,那么您应该可以(仅在服务器上):
mycoll.find({_id:res._id},{fields: {comments:{$slice: -3}}});
获得最后3个。