2011-09-10 7 views
3

に埋め込まれたリストのフィルタリング正しいメインですが、サブセットは常にリスト全体であり、サブセットではありません。サブセットのみを取得するにはどうすればよいですか?リスト内包表記に頼る必要がありますか?はMongoEngine

答えて

2

MongoDBは、あなたが要求している操作を正確にサポートしていないため、Mongoengineもサポートしていません。

アレイ(リスト)に対してスライシング操作を実行できますが、アドホックフィルタリングは実行できません。 MongoDBのアレイにスライスするとPythonでリストをスライスと同じように動作し、あなたがslice__キーワード構文を使用してMongoengineでそれを行うことができます。

Main.objects.filter(subs__name__exists=True).fields(slice__subs=[0,2]) 

これは、インデックス0(つまり、最初の要素)から始まり、2を返すサブルーチンを返します。それ以降の要素。