我有一个集合,它是两个用户之间的操作日志。它有一个 src_id 和一个 dest_id。
我正在寻找获取 id1 和 id 列表之间的所有操作记录 - “ids = [id2, id3, id4]”。
以下两个语句正常工作:
act_obs = self.db.action_log.find(
{'src_id': id1, 'dest_id': {'$in': ids} }
)
act_obs = self.db.action_log.find(
{'dest_id': id1, 'src_id': {'$in': ids} }
)
但是,这是我无法弄清楚出了什么问题的地方,以下内容根本拒绝返回任何结果:
act_obs = self.db.action_log.find(
{'$or': [
{'dest_id': id1, 'src_id': {'$in': ids} },
{'src_id': id1, 'dest_id': {'$in': ids} }
]}
)
如果是这样,有人可以阐明我做错了什么吗?更重要的是,如何在 mongo 中完成我想要做的事情。
我正在尝试获取 id1 是 src_id 并且 ids 列表中的任何 id 是 dest_id 的所有记录,或者 id1 是 dest_id 并且 ids 列表中的任何 id 都是 src_id 的任何记录。
我正在使用 pymongo 1.7。谢谢!