1. 程式人生 > >mongodb 用戶點贊功能理論實現[轉載]

mongodb 用戶點贊功能理論實現[轉載]

mongod div select AC 數組 pan exist class TP

在 posts(文章) 集合中儲存對該文章點贊的用戶的 _id 的數組,例如:

// posts
{
    _id: ObjectID(‘4e7020cb7cac81af7136236b‘),
    users_like_this_post: [
        ObjectID(‘4e7020cb7cac81af71362361‘),
        ObjectID(‘4e7020cb7cac81af71362362‘)
    ]
}

查對一個文章點贊的用戶:

post = db.posts.findOne({_id: ObjectID(‘4e7020cb7cac81af7136236b‘)});
console.log(post.users_like_this_post);

查一個文章的點贊數量:

post = db.posts.findOne({_id: ObjectID(‘4e7020cb7cac81af7136236b‘)});
console.log(post.users_like_this_post.length);

  

查點贊過 100 的文章:

posts = db.posts.find({‘users_like_this_post.100‘: {$exists: true}});

  

查 user 點贊過的文章:

posts = db.posts.find({users_like_this_post: user._id});

  

user 對 post 點贊:

db.posts.update({_id: post._id}, {$addToSet: {users_like_this_post: user._id}});

  

user 對 post 取消點贊:

db.posts.update({_id: post._id}, {$pull: {users_like_this_post: user._id}});

  

參考 https://segmentfault.com/q/1010000000663821

mongodb 用戶點贊功能理論實現[轉載]