2016-07-12 9 views
3

私はこれまでのところ非常に似たような質問をしましたが、私はこれと闘っています。Sails.js - 1対多のasscoisationが存在する場合の青写真クエリ

私の以前のquestionは、1対1の青写真/水線のクエリですが、これは1対多です。

私はMongo DBを使ってsails.jsアプリを持っています。私は1対多の関係を持つ2つのモデル/コレクションを持っています。

いるが、それに関連付けられた2つのタイトル...

[ 
    // media item 1 
    { 
    "titles": [ 
     { 
     "name": "BOARDWALK1", 
     "createdAt": "2016-07-12T12:12:37.946Z", 
     "updatedAt": "2016-07-12T21:34:10.879Z", 
     "media": "5784debe3ad51e3422887bab", 
     "id": "5784deb53ad51e3422887ba8" 
     }, 
     { 
     "name": "BOARDWALK3", 
     "createdAt": "2016-07-12T12:12:42.980Z", 
     "updatedAt": "2016-07-12T20:59:05.054Z", 
     "media": "5784debe3ad51e3422887bab", 
     "id": "5784deba3ad51e3422887baa" 
     } 
    ], 
    "name": "DEF234.mxf", 
    "createdAt": "2016-07-12T12:12:46.490Z", 
    "updatedAt": "2016-07-12T12:40:08.328Z", 
    "mediaInfo": { 
     "blah": 123 
    }, 
    "id": "5784debe3ad51e3422887bab" 
    }, 

    // media item 2 
    { 
    "titles": [], 
    "name": "ABC123.mxf", 
    "createdAt": "2016-07-12T12:12:49.448Z", 
    "updatedAt": "2016-07-12T12:37:55.757Z", 
    "id": "5784dec13ad51e3422887bac" 
    }, 

    // media item 3 
    { 
    "titles": [], 
    "name": "GHR87635.mxf", 
    "createdAt": "2016-07-12T21:05:20.716Z", 
    "updatedAt": "2016-07-12T21:05:20.716Z", 
    "id": "57855b90f2d7713e22cdf17f" 
    } 
] 

を持っている場合、私はすべての項目で(青写真、すなわちREST呼び出しを使用して)照会したいのですが、例えば3つのmediaアイテム、1を次のように乗りそれに関連するタイトルはありません。関連付けが存在する場合、あなたが行うことができます検索するには

...

POST http://localhost:1337/media/find

{ 
    "where" : { 
     "title" : { 
      "!" : null 
     } 
    } 
} 

...しかし、私は何の関連が存在しない、反対に、照会の方法を見つけるのに苦労しています、などWHERE media.titles.length === 0

何か助けを非常に感謝します。

答えて

1

配列の長さがゼロであるかどうかを確認するのは正しい考えです。しかし、検索操作を行うためにPOSTオペレーションを使用することは、悪い設計です。 RESTfulなSails.jsの青写真ルートでは、POSTは作成アクションにのみ使用してください。クエリにはGETを使用する必要があります。あなたは、次のようなクエリを構築するために* parameterを使用して試みることができる

:私はあなたの特定のAPIをテストすることはできませんので

GET http://localhost:1337/media?titles.length<1

、私は上記の作品を期待しています。それを動作させるには少し微調整が必​​要かもしれません。クエリ文字列をテストするには、Postmanのようなアプリを使用すると便利です。

アーキテクチャの観点から、ヌル値を削除したい場合は、参考のためGoogle JSON styleguideを参照してください。

その存在のための強力なセマンティック 理由がありますしない限り、プロパティは、オプションであるか、空またはnull値を持ち、 はJSONからプロパティをドロップ検討してください。

関連する問題