#javascript #parse-platform
#javascript #синтаксический анализ-платформа
Вопрос:
У меня есть две таблицы A и B, в таблице B у меня есть столбец типа pointer, каждое поле указывает на класс в таблице A.
Мне нужно знать, как запрашивать таблицу B на основе значения определенного поля в столбце указателя.
Так, например, у меня есть 4 объекта (записи) в таблице B, а в столбце указателя у меня есть pointer1, pointer2, pointer3 и pointer4. Итак, если я хочу выполнить запрос к таблице B и хочу извлечь запись со значением поля pointer3, как мне это сделать в javascript?
Комментарии:
1. Ваш вопрос не совсем имеет смысл, вы имеете в виду, что хотите запрашивать записи из TableB, где TableB.pointer3 = pointerA, где pointerA — некоторое известное значение?
2. У меня есть две таблицы, A и B, в B есть столбец указателя, который указывает на A. Я заполняю таблицу html обеими этими таблицами, используя столбец указателя. Мой пользователь может редактировать строку таблицы html, поэтому, когда они нажимают сохранить, мне нужно обновить обе таблицы синтаксического анализа (A amp; B) данными из полей таблицы html. Итак, я думал об обновлении одного, а затем об успешном обновлении другого или у вас есть лучший метод?
Ответ №1:
Основываясь на вашем комментарии, я бы предложил сохранить оба идентификатора объекта для каждой строки. Вы могли Parse.when(recordA.save(), recordB.save()).then(...)
бы подождать, пока оба не будут завершены, если вам нужно предоставить обратную связь в пользовательском интерфейсе.
Альтернативой является просто сохранение идентификатора объекта для записи таблицы B, и в обработчике успеха вы получите обратно обновленную запись, которая будет включать указатель, где вы можете затем выполнить другое сохранение. Это медленно, так как он будет выполнять два сохранения последовательно, а не запускать оба сразу.
Комментарии:
1. Спасибо за ваш быстрый ответ, Тимоти, я новичок в синтаксическом анализе, не могли бы вы показать образец? Я зашел так далеко, просматривая документы и форумы, но я действительно нахожусь на переломном этапе, и я не уверен, как поступить. Спасибо
Ответ №2:
Итак, после долгих поисков, осмотров и вопросов я в конце концов сам это понял. Мне нужно было передать объект в query.equalTo
метод следующим образом:
query.find({
success: function(results) {
var detailsObject = results[0];
detailsObject.set("uuid", uuid);
detailsObject.set("proximity", prox);
detailsObject.set("campaignId", campaignId);
detailsObject.set("location", location);
detailsObject.set("sub_location", subLoc);
detailsObject.save(null, {
success: function(detailsObject) {
var content = Parse.Object.extend("Content");
var contentQuery = new Parse.Query(content);
var id = detailsObject.id;
contentQuery.equalTo("descId", detailsObject);
Таким "descId"
же является столбец указателя в моей таблице содержимого, и вместо того, чтобы пытаться запросить значение в поле (идентификатор объекта объекта details), мне нужно было передать объект details в query.equalTo
Я надеюсь, что это принесет пользу кому-то еще.