0

[編集済]レルム内の日付の照会ネイティブ

私はレルム内の日付でクエリしてフィルタリングしたいと思います。ここに私のコードは次のとおりです。

let factories = realm.objects('Factory') 
    for(factory of factories) { 
     let toys = realm.objects('Toy').filtered('factory_id == factory.id') 
     let lowerBound = new Date(year + '-1-1T00:00:00Z') 
     let uppperBound = new Date(year + '-2-1T00:00:00Z') 
     let janToys = toys.filtered('created_at > lowerBound AND created_at < uppperBound') 
    } 

yearは、上記のコードの前に宣言された変数です。

これは機能しません。日付の書式が正しくないためです。私はおもちゃをログインしたときにここで

は、日付の形式です:

Fri Mar 24 2017 16:01:59 GMT+0800 (Malay Peninsula Standard Time)

私はレルムの日付を照会する方法を知りたいのです。私はここの文書や他の投稿で見つけることができません。私はどんな助けにも感謝しています。これが日付形式の問題でない場合は、教えてください。

ありがとうございました!

EDIT:外部ループを追加しました。これは日付形式の問題ではない可能性があります。エラーメッセージは次のとおりです。

Error: Predicate expressions must compare a keypath and another keypath or a constant value` 
+0

lowerBoundとupperBoundを次のように作成するとどうなりますか?let lowerBound = new Date(year + '-01-01T00:00:00'); 'let uppperBound = new Date(year + '-02 -01T00:00:00 ');' –

+0

@JanPeter、こんにちは、正直な間違いでした。 'エラー:述語式はキーパスと別のキーパスまたは定数値を比較する必要があります。 ' –

+0

これは私がしばしばレルムを使用しているので、これはかなりわかりません。しかし、私は日付を整数として保存し、保存して読む前に日付をunixタイムスタンプに変換します。頻繁に言語を切り替えると日付型を扱うのが簡単ではないので、私にとってはもっと簡単になります^^ –

答えて

1

Realmはクエリ内にドット演算子をサポートしていないようです。レルムを強制的にリレーショナルにすることはできません。解決策として、私はNoSQLの慣習に従うように私の使い方を変えました。関係を宣言する代わりにオブジェクトを渡す。

関連する問題