mongodb 用户点赞功能理论实现[转载]
在 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 用户点赞功能理论实现[转载]的更多相关文章
- 基于微信小程序的用户列表点赞功能
代码地址如下:http://www.demodashi.com/demo/13997.html 一.前言 (1).适合人群 1.微信小程序开发者 2.前端工程师 3.想入门学习小程序开发的人员 4.想 ...
- Day8-微信小程序实战-交友小程序-首页用户列表渲染及多账号调试及其点赞功能的实现
在这之前已经把编辑个人的所有信息的功能已经完成了 之后先对首页的列表搞动态的,之前都是写死的静态 1.之前都是把好友写死的,现在就在js里面定义一个数组,用循环来动态的绑定 在onReady中定义,取 ...
- ajax点赞功能
- IOS开发-项目实战-点赞功能的实现
实现思路: 1.每一条新闻就是一个cell,在cell上添加点赞按钮. 2.让cell的控制器成为自定义cell的代理,将点击了哪一个cell放在代理方法中传出去. 3.并将这条新闻的ID和当前用户的 ...
- 实现Web上的用户登录功能
关于如何实现web上的自动登录功能 文章来源http://coolshell.cn/articles/5353.html Web上的用户登录功能应该是最基本的功能了,可是在我看过一些站点的用户登录功能 ...
- FusionChart 导出图片 功能实现(转载)
FusionChart 导出图片 功能实现(转载) http://www.cnblogs.com/jiagoushi/archive/2013/02/05/2893468.html 题目:精美Fusi ...
- 你会做Web上的用户登录功能吗?
Web上的用户登录功能应该是最基本的功能了,可是在我看过一些站点的用户登录功能后,我觉得很有必要写一篇文章教大家怎么来做用户登录功能.下面的文章告诉大家这个功能可能并没有你所想像的那么简单,这是一个关 ...
- JavaScript实现评论点赞功能
通过分析评论功能的逻辑关系,学会如何使用JavaScript实现评论.回复.点赞等各种功能 1.学会JavaScript处理日期和时间. 2.掌握Dom操作中的添加/删除子节点方法. 3.使用setT ...
- 点赞功能与redis
转:https://edu.aliyun.com/a/20538 摘要: 前言点赞其实是一个很有意思的功能.基本的设计思路有大致两种, 一种自然是用mysql等数据库直接落地存储, 另外一种就是利用点 ...
随机推荐
- Java项目工程化之项目构建工具Maven
欢迎查看Java开发之上帝之眼系列教程,如果您正在为Java后端庞大的体系所困扰,如果您正在为各种繁出不穷的技术和各种框架所迷茫,那么本系列文章将带您窥探Java庞大的体系.本系列教程希望您能站在上帝 ...
- linux启动
启动顺序:POST加电自检——加载BIOS——读取MBR——GRUB引导——加载kernel——rc0~rc6级别启动——加载内核模块——加载rc.sysinit——inittab运行级别——读取rc ...
- 静态绑定 self 和 static的区别
后期静态绑定 自 PHP 5.3.0 起,PHP 增加了一个叫做后期静态绑定的功能,用于在继承范围内引用静态调用的类. 准确说,后期静态绑定工作原理是存储了在上一个“非转发调用”(non-forwar ...
- 解决“The remote certificate is invalid according to the validation procedure”问题
在用HttpClient发起https请求时,遭遇了“The remote certificate is invalid according to the validation procedure”异 ...
- Mybatis解决sql中like通配符模糊匹配 构造方法覆盖 mybits 增删改
<select id="getRecByNameWildcard" parameterType="Student" resultMap="res ...
- Magento 2 初探
进入公司有一小段时间了,虽然自己之前一直从事前端工作,但是基本工作就是做一些国内电商网站的前端工作.在刚进入这家公司时,自己对 magento2 一无所知,尽管上班前看过老大发给我的一些文档资料,但是 ...
- Day22 文件上传下载和javaMail
day22总结 文件上传概述 1 文件上传的作用 例如网络硬盘!就是用来上传下载文件的. 在智联招聘上填写一个完整的简历还需要上传照片呢. 2 文件上传对页面的要求 上传文件的要求比较多,需要 ...
- python16_day34【设计模式】
一.简单工厂模式 # coding : utf-8 # create by ztypl on 2017/5/24 from abc import abstractmethod, ABCMeta cla ...
- cocos-lua基础学习(七)Scene类学习笔记
local scene = cc.Scene:create() cc.Director:getInstance():replaceScene( scene ) cc.Director:getInsta ...
- 编程当道,学点Python技术好傍身
为了填满AI时代的人才缺口,编程语言教育都从娃娃抓起了!如果你还不懂Python是什么将来怎么给孩子辅导作业呢? Python新手入门教程 近期,浙江省信息技术课程改革方案出台,Python言语现已断 ...