라는 id_list
필드 userId
와라는 사용자 트랜잭션의 mongo 컬렉션 을 포함하는 라는 mongo 문서의 파이썬 목록 이 있습니다 collection
. id_list
중첩 된 목록 이해 내에서 mongo 쿼리에 매개 변수로 각 사용자의 ID를 전달하여 각 사용자에 대한 컬렉션의 모든 트랜잭션을 검색하고 싶습니다 .
이것이 내가 시도한 것입니다.
[doc for doc in collection.find({'userId': user._id, 'site': SITE, 'operator': OPERATOR, 'isTrue': {'$exists': True}}) for user in [user for user in id_list]]
나에게 맞는 것처럼 보였지만 이것을 실행하면 불가능한 빈 목록이 반환됩니다.
내가 이것을 시도하면 :
[doc in collection.find({'userId': user._id, 'site': SITE, 'operator': OPERATOR, 'isTrue': {'$exists': True}}) for user in [user for user in id_list]]
각 사용자에 대한 단일 트랜잭션이 포함 된 목록을 얻었지만 ´id_list´에서 전달한 각 사용자의 모든 트랜잭션을 복구하고 싶습니다.
누군가가 목록 이해에 무엇이 잘못되었는지 말해 줄 수 있습니까?
미리 감사드립니다.
마침내 이렇게해서 얻었습니다.
[doc for doc in collection.find({'userId': {'$in': id_list}, 'site': SITE, 'operator': OPERATOR, 'isTrue': {'$exists': True}})]
목록의 각 ID를 mongo 쿼리에 하나씩 전달하는 대신 $in
연산자를 사용 하여 id_list
거기에 전달했습니다 . 이 작업을 수행하는 올바른 방법 인 Appart는 id_list
Python이 아닌 mongo 쿼리 내부에서 반복 되기 때문에 내가 시도한 것보다 훨씬 효율적 입니다.
어쨌든 감사합니다 :)
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다