仅获取数组猫鼬的最后一个元素

阿隆

我在文档中有数组,我尝试接收此数组的最后一个元素。

我的代码是:

Post.find({_id:postId},{'comments':{'$slice':-1}});

这给了我所有的对象,但是comments数组仅包含最后一个元素。

另一方面,

Post.find({_id:postId},{'comments':1});

只给我评论。

我没有找到如何将两个命令结合在一起。怎么做?

{
 "users":[],
 "comments":["string1","string2","string3"],
 "lastValue":"Wow"
 "name":"jow"
 "_id": {
    "$oid": "5747d6bdecfae9d0560077cc"
   },
}

谢谢

梅列什科(by.meleshko)

您可能要使用mongodb(3.2版)聚合$ slice,如下所示:

Post.aggregate([
  { 
    $match: { 
      '_id.$oid': postId 
    }
  },
  { 
    $project: {
      comments: {
        $slice: [ "$comments", -1 ] 
      }
    }
  }
]);

在早期版本的mongodb中:

Post.aggregate([
  { 
    $match: { 
      '_id.$oid': postId 
    }
  },
  { 
    $unwind: "$comments"
  },
  {
    $group : {
      _id: "$_id.$oid",
      comment: { $last: "$comments" }
    }
  }
]);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章