2人のユーザー間のアクションログであるコレクションがあります。src_idとdest_idがあります。
id1とidのリストの間のアクションであるすべてのレコードをフェッチしようとしています-"ids=[id2、id3、id4]"。
次の2つのステートメントは正しく機能します。
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リストのidsがdest_idであるすべてのレコード、またはid1がdest_idでidsリストのidsがsrc_idであるすべてのレコードを取得しようとしています。
pymongo1.7を使用しています。ありがとうございました!