2016-12-12 1 views
0

사용자 테이블/컬렉션이 있고 사용자를 업로딩하려는 경우 사용자를 업데이트하거나 아직 존재하지 않는 경우 새 사용자를 추가합니다. 아래 구조.jongo를 사용하여 upsert하는 방법?

"존재"란 일부 외부 ID가 있음을 의미합니다. 이 경우 googleId입니다.

어떻게하면 Jongo 라이브러리를 사용하여 수행 할 수 있습니까? 감사합니다.

public class User { 
    public String _id; 
    public String email; 
    public String givenName; 
    public String familyName; 
    public String googleId; 
} 

답변

0
이미로드 googleId (통과 구글 인증)을 가진 사용자를 가진 고려

, 내가 사용하여 MongoDB에 upsert 싶습니다 Jongo :

// Init 
MongoClient mongoClient = new MongoClient("localhost", 27017); 
DB db = mongoClient.getDB(DB_NAME); 
Jongo jongo = new Jongo(db); 
org.jongo.MongoCollection collectionJongo = jongo.getCollection(USER_COLLECTION_NAME); 

// Upsert 
String query = "{googleId: {$eq: #}}"; 
collectionJongo.update(query, user.googleId) 
     .upsert() 
     .with(user); 
user = collectionJongo.find(query, user.googleId).as(User.class).next(); 
// Works only on insert. On update, the upsertedId is null. 
//user._id = ((ObjectId) writeResult.getUpsertedId()).toHexString(); 
관련 문제