我有一个 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 中预先计算自定义字段?我需要能够获得这样的字段,user1.isInList1,user1.isInList2
现在我必须在客户端通过迭代 *listed_in* 数组来了解用户是否是“list1”的成员,但 *listed_in* 可能有数千个元素。