私はurls(リソース)のリストと各リソースのビューリストを持っています。それらはすべてmongodbデータベースに格納されています。 言い換えれば、resource
には多くの関連がありますviews
です。
リソースとビューの両方にフィールドurl
が含まれています。このフィールドは、リソースとそのビューに関するWebサイトを識別するために使用しています。
私はVAR urls
内のURLのリストを持っている、と私は返すようにしたいが、それらのそれぞれのために、同じ順序のURLでは、このURLに関連付けられているビューの一つだけです。私は渡されたリストに関する結果の順序を保ち、オペレータで$を使用して
- 問合せ: だから私にとって興味深い二つの基準があります。
- $ inリストのキーごとに1つの項目のみを返します。もちろん
、私は私のコードで反復し、(pythonで)このような何かを行うことができます。
views = []
for url in urls:
views.append(db.views.find_one({"url": url}))
それは私の問題を解決することができる場合、私は$in
オペレータが正確にどのように動作するかを知っているとしていませんしかし、私はそれが私が興味を持っている順序を保持しない恐れがあります。たぶん私はクエリ後に結果を並べ替えることができますか?
しかし、これはN個のURLに対してN個のクエリを作成することです。これは最適化されていないようです。これを避ける方法はありますか?