2017-02-17 3 views
0

私は数時間と数日間考えていますが、解決策を見つけることはできません。私の問題は、私は次のコードを書いたことを、次のとおりです。

Meteor.methods({ 

    'pushItems': function (itemId) { 
    var specificValue = "12"; 

    if (this.userId) { 
     userManagement.update({ 
     '_id': this.userId 
    }, { 
     $push: { 
      'itemIds': itemId, 
      'values': specificValue 
        } 
       } 
      ); 
     } 
     } 
    }); 

私は、このメソッドを呼び出した後、内配列「アイテムID」内に格納され、1つの項目が「12」で保存されている「のitemId」と一つのアイテム配列 "値"。このすべては、1つのユーザーオブジェクトで発生します。

"12"がユーザーの 'values'の範囲内にあるかどうかをチェックする関数を記述する必要があります。これが 'true'の場合、最初に追加されたitemId [0] 'itemIds'。

私は自分の問題を正しく説明することができ、助けに感謝したいと思います。

答えて

1

方法は以下valuesアレイ内の引数(値)を含む文書を検索し、これに[0] itemIdアレイから

Meteor.methods({ 
    'pullItems': function (value) { 
     return userManagement.update(
      { values: value }, 
      { $pop: { itemId: -1 }} 
     ); 
    } 
}); 
+0

多くのおかげで項目を削除します。 $ popコマンドは、私の問題の少なくとも50%を検索して解決するものでした。ただし、{values:value}は機能しません( 'unexpected identifier')。アプリがクラッシュします。おそらく、これを解決するための 'if'と検索/検索機能を持つ方法がありますか?実際には、変数を宣言し、 'この変数が'値 'にある場合は$ popジョブを実行する必要があります。私はそれについて考えていますが、私はそうするには十分プロではありません:Dさらに、私は一般的な質問をしています(それはノービスです)。ありがとう。 – Jaybruh

+1

問題ありません!私はなぜ '' 'values:value'''がうまくいかないのか分かりません。これは、メソッドに渡された 'value''のオブジェクトの' 'values''配列を検索する必要があります。 '' 'if'''ステートメントを試してください。ここでコメントを管理できない場合は、私がお手伝いします。 return文は、基本的には更新呼び出しの結果をクライアントに返します。あなたは本当に '' return''というステートメントは必要ありませんが、私はそこに習慣として入れます – Sean

+0

ああ、私は値のことがうまくいかなかったのを知っています。私はMeteor.callから渡すのを忘れてしまった。しかし、それは値の配列で '値'を見つけるだけではありません。それは完全に新しい文書をそのユーザーに書き込み、他の文書を削除します($ pushまたはsthを省略したので、それらを削除すると思います)。しかし、私は新しい文書をユーザーに書く必要はありません。その値がそこにあるかどうかを知る必要があります。その場合は、$ itemIdsでポップする必要があります。私は 'if'関数の試みを書いて、私が意味することを示すために投稿します。ありがとう! – Jaybruh

関連する問題