gpt4 book ai didi

ruby-on-rails - 学习RoR和Mongo,为什么不统计数组的票数

转载 作者:可可西里 更新时间:2023-11-01 09:16:03 25 4
gpt4 key购买 nike

我是 Mongo 和 RoR 的新手,具有 PHP 背景。

我刚刚学习了这个关于数据建模的教程 http://www.mongodb.org/display/DOCS/MongoDB+Data+Modeling+and+Rails

并且对为什么教程建议将投票存储在一个字段中并将该字段更新为

db.stories.update({_id: story_id, voters: {'$ne': user_id}},   {'$inc': {votes: 1}, '$push': {voters: user_id}});
而不仅仅是

db.stories.update({_id: story_id, voters: {'$ne': user_id}},   {'$push': {voters: user_id}});

然后数数

Story.voters.count
获取已投票的用户数?

我知道这是一个教程,但它似乎不是管理数据的最有效方式。

最佳答案

本教程可以通过解释维护计数缓存字段(投票)的目的来做得更好,因为只有当您打算对数组的大小进行范围查询时才需要它。

来自 the docs :

You cannot use $size to find a range of sizes (for example: arrays with more than 1 element). If you need to query for a range, create an extra size field that you increment when you add elements.

在未来,随着查询功能的不断发展,我们可能不必这样做。查看 JIRA 票证 SERVER-478 .

关于ruby-on-rails - 学习RoR和Mongo,为什么不统计数组的票数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3159862/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com