我有一个这样的集合:
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})
这样做的正确方法是什么?
答案 0 :(得分:7)
试试这个
collection1.find({'albums': {'$in': [3, 7, 8]}})
[IN] allow[s] you to specify an array of possible matches
如果这不起作用,可能会回溯并查看集合中3
7
和8
的实际类型,以确保它们是整数。
print type(collection1.find_one()['albums'][0])