0

私はループバックを使用しています。私はmongodbにuserテーブルを持っています。MongoDBコレクション内のすべてのフィールドのリストをループバックを使用して取得します

ユーザーテーブルの一意の列名(キー)が必要です。

以下の回答がmongodbで見つかりました。

mr = db.runCommand({ 
    "mapreduce" : "my_collection", 
    "map" : function() { 
    for (var key in this) { emit(key, null); } 
    }, 
    "reduce" : function(key, stuff) { return null; }, 
    "out": "my_collection" + "_keys" 
}) 

db[mr.result].distinct("_id") 
["foo", "bar", "baz", "_id", ...] 

しかし、ループバックでこれを行う方法がわかりません。

上記のコードをループバックで実装する方法を教えてもらえますか?

のREST API

これは、1つまたは複数のプロパティのためです:

+0

あなたはループバックでそれを必要とするのはなぜ?なぜあなたは現在保存されているデータの分析以外の目的でこれを必要としますか?生産システムの一部であることを意味するものではありません。 –

+0

あなたの質問はあなたのコレクションをフィルタリングする方法ですか? –

+0

@ NeilLunn。私はループバックを使用しているので、ループバックでそれが必要です。これの目的は私のクライアントがユーザテーブルの動的フィルタを必要とすることです。だから彼はユニークな列名が必要です。そこから、ログインのために表示する列を動的に決定します。 –

答えて

0

あなたに、いくつかの方法でフィールドフィルタを使用することができます。

true

は、フィールドにあなたのケースのための

?filter[fields][propertyName]=<true|false>&filter[fields][propertyName]=<true|false>... 

除外するフィールド

falseを含めます

?filter[fields][names]=true&filter[fields][id]=false&filter[fields][something]=false 

NODEのAPIを

model.find({ 
     fields: { 
     propertyName: <true|false>, 
     propertyName: <true|false>, 
      ... } 
    }); 
あなたのケースのため

user.find({ 
      fields: { 
      names: true, 
      something: false, 
       ... } 
     }); 

HERE the official documentation of the explanation above.

モデル定義JSON

あなたはJSONのモデルファイル(user.json)にスコーププロパティを使用することができますが、これは推奨されません名前フィールドのみが常に検索されます。

"scope": { 
    { fields: {names: true, id: false, field: false} } 
    }, 

Check this official documentation for more information about SCOPES

ANGULARJSフィルター

this is the documentation for angularjs filters.

+0

質問をよくお読みください。フィールド上のフィルタではありません。テーブルから一意のフィールドリストを取得する方法です。 –

+0

@AnkurAkvaliyaごめんなさい、あなたは一意の名前リストが必要なのですか? –

+0

コレクションに '{fname: '..'、lname: '...'}'& '{fname: '..'、lname: '...のような2つのレコードがある場合のように、一意のフィールド(列)名が必要です。 '、 会社: '...'} '' [' fname '、' lname '、' company '] 'のような結果が必要です –

関連する問題