我有一个mongoDB集合,其中有一个数组字段,用于表示用户所属的列表。在MongoDB中返回自定义字段
user {
screen_name: string
listed_in: ['list1', 'list2', 'list3', ...] //Could be more than 10000 elements (I'm aware of the BSON 16MB limits)
}
我现在用的是* listed_in *场拿到成员列表
db.user.find({'listed_in': 'list2'});
我还需要查询特定的用户知道他是否是特定列表的成员
var user1 = db.findOne({'screen_name': 'user1'});
在这种情况下,我将获得其所有成员的* listed_in *字段。
我的问题是: 有没有办法预先计算mongoDB中的自定义字段? 我需要通过的* listed_in迭代*阵列知道,如果能够得到这样的领域,user1.isInList1,user1.isInList2
现在我必须这样做,在客户端用户是“list1”的成员,但* listed_in *可能有一千个元素。
当你说你想得到像'user1.isInList1'这样的结果时,这是否意味着你希望mongo为每个存在的列表在文档的根级设置一个布尔键?难道这不是很难预测吗?你能解释一下你想用最终结果对象完成的问题吗?此外,如果您打算快速创建该文档并为listed_in编制索引,我相信索引列表的默认5k元素限制。你可以通过 – jdi 2011-12-26 22:52:15
来提高它在哪里可以找到更多关于索引列表的5k元素限制的信息?我以前没有听说过。 – aartiles 2011-12-27 07:48:11
奇怪。我现在正在做我的第一个MongoDB项目,当我研究索引数组时,我发现信息表示索引数组有5k元素限制。现在,我再也找不到了。如果我是这样的话,我很高兴在这个问题上出错:-) – jdi 2011-12-27 17:03:13