1

私はこのデータストアモデルを持っています:

class Person(db.Model):
    person_name = db.StringProperty(required = True)        
    nacionality = db.StringProperty(required = True)
    marital_status = db.StringProperty(required = True)
    profession = db.StringProperty(required = True)
    SSN = db.IntegerProperty(required = True)
    driver_license = db.IntegerProperty(required = True)
    address = db.PostalAddressProperty(required = True)

このモデルでは、person_name は次のようになります: 「Carl Sagan」(完全な名前のプロパティのみがあります)。しかし、クエリを実行すると、次のようになります。

    searched_name = 'Carl'
    p = Person.all()
    persons = p.filter('person_name >=', searched_name)

その結果、'Carl' で始まらない、または名前のどの部分にも 'Carl' が含まれていない名前が得られました。この方法でクエリを実行すると、persons = p.filter('person_name >=', searched_name)結果は得られませんでした (「Carl Sagan」も見つかりませんでした)。ですから、知りたいのですが、この種のクエリに最適なフィルターは何ですか? (名のみを使用して完全な名前プロパティを照会)?

4

1 に答える 1

1

文字列フィルターは、文字列の先頭から始まる文字を比較していたので機能します。次のようなことができます。

p.filter('person_name >=', searched_name)
p.filter('person_name <', searched_name + u'\ufffd')
于 2012-08-10T13:26:07.680 に答える