如何使用 jongo 进行 upsert?
How to do upsert using jongo?
我有一个用户 table/collection 并且想更新一个用户 - 如果存在则更新一个用户,如果仍然不存在则添加一个新用户。结构如下。
"exists" 是指拥有一些外部 ID。在这种情况下,googleId
.
如何使用 Jongo 库来实现? 谢谢。
public class User {
public String _id;
public String email;
public String givenName;
public String familyName;
public String googleId;
}
考虑让用户使用已加载的 googleId(通过 google 身份验证),我想使用 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();
我有一个用户 table/collection 并且想更新一个用户 - 如果存在则更新一个用户,如果仍然不存在则添加一个新用户。结构如下。
"exists" 是指拥有一些外部 ID。在这种情况下,googleId
.
如何使用 Jongo 库来实现? 谢谢。
public class User {
public String _id;
public String email;
public String givenName;
public String familyName;
public String googleId;
}
考虑让用户使用已加载的 googleId(通过 google 身份验证),我想使用 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();