15
15

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

ParseでQueryをfindする方法(JavaScriptを使う)

Last updated at Posted at 2014-08-05

Baasの中ではParseは有名かと思いますが、Javascript SDKでDBからデータを見つける方法を書いている人があまりいないので、メモしておきます。

SampleのDB

以下のようなDBがあるとします。ParseのClass名をUserSettingsとします。

UserSettings

objectId UserName EnableHoge
1m31ipuy Bob true
c23japfv Mike false
opapsc13 May true
poiua123 Sakura false
qPaf2f0f Bob false

objectIdはParse.Objectに設定されるIdです。

ParseのDBの概要

ParseはParse.Objectというオブジェクトでデータが保存されます。上のそれぞれの行が1つのParse.Objectに相当します。

Parse.Objectを1つ取り出す場合(ObjectIdが既知の場合)

簡単です。前提条件として、ObjectIdがわかっているとします。

var UserSettings = Parse.Object.extend("UserSettings");
var query = new Parse.Query(UserSettings);
query.get("opapsc13", {
  success: function(userInfo) {
    // The object was retrieved successfully.
  },
  error: function(userInfo, error) {
    // The object was not retrieved successfully.
    // error is a Parse.Error with an error code and description.
  }
});

DBから検索して条件に完全に一致するものを取得する場合

Parse.Queryのメソッドを駆使すると色々とできますが、複数の条件に完全一致したデータをとる方法です。
equalToを使います。equalToはParse.Queryを返すので、以下のように連鎖できます。

    var UserSettings = Parse.Object.extend("UserSettings");
    var query = new Parse.Query(UserSettings);
    query.equalTo('UserName', 'Mike').equalTo('EnableHoge', true)
    query.find({
        success: function(results) {
            // resultsには一致したParse.Objectの配列がかえります。
            console.log("find:"+results.length); // この場合はresults.length === 1
             console.log("Parse.Object:"+results[0]); //results[0]はParse.Object
            // この場合は、一行目のBob (ObjectId: 1m31ipuy)が取得できます。最下行のBobは取得されません。
        },
        error: function(error) {
        }
    });

上の2つの基本を覚えれば、後は応用が効くと思います。私はParse.Object.extendで取得したObjectをnew Parse.Queryで初期化するところで失敗してはまりました。

また、queryに対してequalToやlessなどで色々と検索条件を追記して、最後にfindで実際の検索を行うので、そこが注意点でしょうか。

15
15
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
15

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?