Welcome to OGeek Q&A 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 Reply

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"}}}])

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...