pymongo:如何使用$或运算符作为数组的列?

时间:2011-12-27 03:36:51

标签: python mongodb pymongo

我有一个这样的集合:

user_id     albums
1           [1 2 3 4]
2           [3 5 7 8]

我想查找所有记录,相册包含3或7或8,我写了这样的代码但不起作用:

or_array = []
or_array.append({"albums":3})
or_array.append({"albums":7})
or_array.append({"albums":8})

collection1.find({"$or":or_array})

这样做的正确方法是什么?

1 个答案:

答案 0 :(得分:7)

试试这个

collection1.find({'albums': {'$in': [3, 7, 8]}})
来自mongodb docs,[IN] allow[s] you to specify an array of possible matches

如果这不起作用,可能会回溯并查看集合中3 78的实际类型,以确保它们是整数。

print type(collection1.find_one()['albums'][0])