Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
2.7k views
in Technique[技术] by (71.8m points)

mongoose列表查询,怎么查询出每一条数据是否被当前用户点赞?

mongoose列表查询,怎么查询出每一条数据是否被当前用户点赞?

{
   _id: ObjectId(7df78ad8902c)
   title: 'MongoDB Overview', 
   likes: [ObjectId(7df78ad8902c)]
},
{
   _id: ObjectId(7df78ad8902d)
   title: 'NoSQL Overview', 
   likes: [ObjectId(7df78ad8902c)] 
},
{
   _id: ObjectId(7df78ad8902e)
   title: 'Neo4j Overview', 
   likes: [ObjectId(7df78ad8902c),ObjectId(7df78ad8902c)],
},

这是我的数据结构.moogose怎么实现当前用户是否点赞?并且计算出点赞数量

我想要的结束结果

{
   _id: ObjectId(7df78ad8902c)
   title: 'MongoDB Overview', 
   likesNum: 1,
   isLike:true
},
{
   _id: ObjectId(7df78ad8902d)
   title: 'NoSQL Overview', 
   likesNum: 1, 
    isLike:true
},
{
   _id: ObjectId(7df78ad8902e)
   title: 'Neo4j Overview', 
   likesNum: 2,
   isLike:true
},

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)
db.your_collection.aggregate([{$project : {_id : "$_id", title: "$title", islike: {
                 $cond: { if: { $gt: [ {$size : "$like"}, 0 ] }, then: true, else: false }
               }, likesNum : {$size : "$like"}}}])

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

2.1m questions

2.1m answers

60 comments

57.0k users

...