Google App Engine: хранение данных и запросы к ним

Мне интересно, какой лучший способ хранения данных для моей ситуации. Я хочу сохранить список свойств, таких как номера телефонов, для одного человека. Например:

имя: Джон Доу номера: 0998234, 23443145, 2341234, 3425425

Проблема в том, что, имея номер, как я могу выполнить поиск по свойству «числа», чтобы найти Джона Доу. Из того, что я читал, нет инструкции LIKE с использованием GAE?

Спасибо,

РЕДАКТИРОВАТЬ:

Я собираюсь использовать python для удаления данных и вставки их в хранилище данных. Затем я собираюсь запросить эти данные, используя Конечные точки Google Cloud (Java JPA Querys ). В данный момент я не могу выполнить поиск по нескольким значениям в свойстве и вернуть соответствующий объект, поскольку в хранилище данных GAE нет инструкции LIKE.


person derpyderp    schedule 20.03.2013    source источник


Ответы (1)


Вы можете использовать повторяющееся свойство. Вот пример:

class User(ndb.Model):
    name = ndb.StringProperty(required=True)
    numbers = ndb.StringProperty(repeated=True)

# save a user
john_doe = User(name='John Doe',
                numbers=['0998234', '23443145', '2341234', '3425425'])
john_doe.put()

# query with a number '0998234'
query = User.query(User.numbers == '0998234')
for matched_user in query:
    # do something with matched_user
    ...
    ...
person Takashi Matsuo    schedule 20.03.2013
comment
Спасибо за ответ. Можно ли выполнить этот запрос также через JPA? Я пишу облачную конечную точку и буду использовать запрос с entitymanager. - person derpyderp; 20.03.2013
comment
Я запутался. Исходный вопрос имеет тег python, поэтому я предположил, что вы используете python. Удалите тег python и добавьте эту информацию (вы используете JPA) в исходный вопрос. - person Takashi Matsuo; 20.03.2013
comment
Извините за путаницу. Я должен был объяснить себя лучше, я добавил обновление выше, чтобы объяснить, что я хочу сделать. Спасибо. - person derpyderp; 20.03.2013