1

ユーザー テーブル/コレクションがあり、ユーザーをアップサートしたい - 存在する場合はユーザーを更新し、まだ存在しない場合は新しいユーザーを追加します。以下の構造。

「存在する」とは、何らかの外部 ID を持つことを意味します。この場合、googleId.

Jongo ライブラリを使用してどうすればよいですか? ありがとう。

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

1 に答える 1

3

既にロードされた googleId (渡された google auth) を持つユーザーを持つことを検討し、Jongo を使用して mongoDB にアップサートしたいと思います:

// 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();
于 2016-12-12T14:51:50.867 に答える