2017-12-04 5 views
0

user_id=10이 mongodb에 존재하는지 확인하기 위해 쿼리를 작성하고 싶습니다. user_id=10이 이미있는 경우 다른 입력란을 수정하십시오. 존재하지 않으면 다른 필드와 함께 user_id = 10을 삽입하십시오. 유성 js를 사용하고 있습니다.mongodb의 user_id 필드에 특정 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

기존 몽고 문서 샘플을 추가 할 수 있습니까? – blueren

+0

{ "_id": "***" \t "USER_ID": "", \t "이름": "", \t는 "추가" ""} 내가이 무엇을 교체해야 – Nisha

+0

: "경우 (Dbs.insert ({user_id : user_idname : name (user_id : user_idname : name)}) "전달할 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

음, 정확히 작동하지 않는 것은 무엇입니까? 항상 다른 부분으로 건너 뛰고 있습니까? – blueren

+0

새 ID를 전달하면 database.I에 삽입하지 않고 "alert"를 사용하여 getUserDocument stores.it가 정의되지 않은 것을 확인합니다. – Nisha