【发布时间】:2011-03-27 01:39:36
【问题描述】:
我有一个集合,它是两个用户之间的操作日志。它有一个 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。谢谢!
【问题讨论】: