2017-12-04 13 views
0

user_id=10がmongodbに存在するかどうかを確認するクエリを書きたいとします。 user_id=10が既に存在する場合は、他のフィールドを編集します。存在しない場合は、他のフィールドとともにuser_id = 10を挿入します。 私は流星jsを使用しています。以下は特定のuser_idがmongodbのuser_idフィールドに存在するかどうかを確認する方法

コードです。このコードで

Meteor.methods({ 
'dbs.update'(user_id,name,add) 
{ 
if (Dbs.find){user_id:user_id})) 
{   
if(typeof name !=="undefined" && name) 
{ 
Dbs.update({user_id:user_id},{$set: {name: name}}); 
} 
if(typeof add !=="undefined" && add) 
{ 
Dbs.update({user_id:user_id},{$set: {add:add}}); 
} 
} 
else 
{ 
Dbs.insert({user_id:user_idname:name,add:add}); 
} 
} 

私が存在しない場合は、新しいレコードを挿入することはできません既存のrecords.butを更新することができています。 db.collection.find({ "user_id" : { $exists : true}}):フィールドuser_idが存在するかどうかを確認します。特定のID /値がフィールドuser_idに存在するかどうかを確認するクエリはありますか?

+0

既存のmongoドキュメントのサンプルを追加できますか? – blueren

+0

{ "_id": "***"、 \t "user_idは": ""、 \t "名前": ""、 \tは、 "追加": ""}私はこれをどのように置き換える必要があり – Nisha

+0

:」場合( Dbs.insert({user_id:user_idname:name(user_id:user_idname)})) "もし私が渡しているuser_idをチェックする条件が存在するかどうか。 、add:add}); "他のコードは完全に動作しています。 – Nisha

答えて

1

あなたの最新のコメントでは、以下が動作するはずです。

Meteor.methods({ 
    'dbs.update' (user_id, name, add) { 

     // find at least one doc which contains the user_id passed. 
     var getUserDocument = Dbs.findOne({ 
      user_id: user_id 
     }); 



     if (getUserDocument) { // if there exists a document with the given user_id 

      // do your update stuff here 

     } else { // if no doc has been found with user_id (which means that getUserDocument will be undefined) 

      //do your insert. 
      Dbs.insert({ 
       user_id: user_id, 
       name: name, 
       add: add 
      }); 
     } 
    } 
}); 
+0

私は上記のコードを試みたが、それは動作しません。 – Nisha

+0

まあ、正確には動かないのですか?それは常にelse部分にスキップしていますか? – blueren

+0

新しいIDを渡すと、データベースに挿入されていません。getUserDocument stores.itが未定義であることを確認するために "alert"を使用しました。 – Nisha

関連する問題