Фильтровать запрос синтаксического анализа на основе значения поля указателя

#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

Я надеюсь, что это принесет пользу кому-то еще.