Java 类com.mongodb.WriteResult 实例源码
项目:happylifeplat-transaction
文件:MongoRecoverTransactionServiceImpl.java
/**
* 更改恢复次数
*
* @param id 事务id
* @param retry 恢复次数
* @param applicationName 应用名称
* @return true 成功
*/
@Override
public Boolean updateRetry(String id, Integer retry, String applicationName) {
if (StringUtils.isBlank(id) || StringUtils.isBlank(applicationName) || Objects.isNull(retry)) {
return Boolean.FALSE;
}
final String mongoTableName = RepositoryPathUtils.buildMongoTableName(applicationName);
Query query = new Query();
query.addCriteria(new Criteria("transId").is(id));
Update update = new Update();
update.set("lastTime", DateUtils.getCurrentDateTime());
update.set("retriedCount", retry);
final WriteResult writeResult = mongoTemplate.updateFirst(query, update,
MongoAdapter.class, mongoTableName);
if (writeResult.getN() <= 0) {
throw new TransactionRuntimeException("更新数据异常!");
}
return Boolean.TRUE;
}
项目:happylifeplat-tcc
文件:MongoCoordinatorRepository.java
/**
* 更新 List<Participant> 只更新这一个字段数据
*
* @param tccTransaction 实体对象
*/
@Override
public int updateParticipant(TccTransaction tccTransaction) {
Query query = new Query();
query.addCriteria(new Criteria("transId").is(tccTransaction.getTransId()));
Update update = new Update();
try {
update.set("contents", objectSerializer.serialize(tccTransaction.getParticipants()));
} catch (TccException e) {
e.printStackTrace();
}
final WriteResult writeResult = template.updateFirst(query, update, MongoAdapter.class, collectionName);
if (writeResult.getN() <= 0) {
throw new TccRuntimeException("更新数据异常!");
}
return 1;
}
项目:myth
文件:MongoCoordinatorRepository.java
/**
* 更新事务失败日志
*
* @param mythTransaction 实体对象
* @return rows 1 成功
* @throws MythRuntimeException 异常信息
*/
@Override
public int updateFailTransaction(MythTransaction mythTransaction) throws MythRuntimeException {
Query query = new Query();
query.addCriteria(new Criteria("transId").is(mythTransaction.getTransId()));
Update update = new Update();
update.set("status", mythTransaction.getStatus());
update.set("errorMsg", mythTransaction.getErrorMsg());
update.set("lastTime", new Date());
update.set("retriedCount", mythTransaction.getRetriedCount());
final WriteResult writeResult = template.updateFirst(query, update, MongoAdapter.class, collectionName);
if (writeResult.getN() <= 0) {
throw new MythRuntimeException("更新数据异常!");
}
return CommonConstant.SUCCESS;
}
项目:myth
文件:MongoCoordinatorRepository.java
/**
* 更新 List<Participant> 只更新这一个字段数据
*
* @param mythTransaction 实体对象
*/
@Override
public int updateParticipant(MythTransaction mythTransaction) throws MythRuntimeException {
Query query = new Query();
query.addCriteria(new Criteria("transId").is(mythTransaction.getTransId()));
Update update = new Update();
try {
update.set("contents", objectSerializer.serialize(mythTransaction.getMythParticipants()));
} catch (MythException e) {
e.printStackTrace();
}
final WriteResult writeResult = template.updateFirst(query, update, MongoAdapter.class, collectionName);
if (writeResult.getN() <= 0) {
throw new MythRuntimeException("更新数据异常!");
}
return CommonConstant.SUCCESS;
}
项目:ProxyPool
文件:ProxyResourceDaoImpl.java
@Override
public boolean saveResourcePlan(ResourcePlan resourcePlan) {
boolean result = false;
if(resourcePlan.getAddTime() == 0) { //insert
resourcePlan.setAddTime(new Date().getTime());
resourcePlan.setModTime(new Date().getTime());
mongoTemplate.save(resourcePlan, Constant.COL_NAME_RESOURCE_PLAN);
result = Preconditions.isNotBlank(resourcePlan.getId());
} else { //update
Query query = new Query().addCriteria(Criteria.where("_id").is(resourcePlan.getId()));
Update update = new Update();
update.set("startPageNum", resourcePlan.getStartPageNum());
update.set("endPageNum", resourcePlan.getEndPageNum());
update.set("modTime", new Date().getTime());
WriteResult writeResult = mongoTemplate.updateFirst(query, update, Constant.COL_NAME_RESOURCE_PLAN);
result = writeResult!=null && writeResult.getN() > 0;
}
return result;
}
项目:smarti
文件:MongoUserDetailsService.java
public SmartiUser createPasswordRecoveryToken(String login) {
final SmartiUser mongoUser = findUser(login);
if (mongoUser == null) {
return null;
}
final Date now = new Date(),
expiry = DateUtils.addHours(now, 24);
final String token = HashUtils.sha256(UUID.randomUUID() + mongoUser.getLogin());
final SmartiUser.PasswordRecovery recovery = new SmartiUser.PasswordRecovery(token, now, expiry);
final WriteResult result = updateMongoUser(mongoUser.getLogin(), Update.update(SmartiUser.FIELD_RECOVERY, recovery));
if (result.getN() == 1) {
return getSmaritUser(mongoUser.getLogin());
} else {
return null;
}
}
项目:smarti
文件:ConversationRepositoryImpl.java
@Override
public Conversation updateMessage(ObjectId conversationId, Message message) {
final Query query = new Query(Criteria.where("_id").is(conversationId))
.addCriteria(Criteria.where("messages._id").is(message.getId()));
final Update update = new Update()
.set("messages.$", message)
.currentDate("lastModified");
final WriteResult writeResult = mongoTemplate.updateFirst(query, update, Conversation.class);
if (writeResult.getN() == 1) {
return mongoTemplate.findById(conversationId, Conversation.class);
} else {
return null;
}
}
项目:smarti
文件:ConversationRepositoryImpl.java
@Override
public Conversation saveIfNotLastModifiedAfter(Conversation conversation, Date lastModified) {
final Query query = new Query();
query.addCriteria(Criteria.where("_id").is(conversation.getId()));
query.addCriteria(Criteria.where("lastModified").lte(lastModified));
BasicDBObject data = new BasicDBObject();
mongoTemplate.getConverter().write(conversation, data);
final Update update = new Update();
data.entrySet().stream()
.filter(e -> !Objects.equals("lastModified", e.getKey()))
.forEach(e -> update.set(e.getKey(), e.getValue()));
update.currentDate("lastModified");
final WriteResult writeResult = mongoTemplate.updateFirst(query, update, Conversation.class);
if (writeResult.getN() == 1) {
return mongoTemplate.findById(conversation.getId(), Conversation.class);
} else {
throw new ConcurrentModificationException(
String.format("Conversation %s has been modified after %tF_%<tT.%<tS (%tF_%<tT.%<tS)", conversation.getId(), lastModified, conversation.getLastModified()));
}
}
项目:javacode-demo
文件:TestInsertion.java
@Test
public void shouldInsertOneHeroWithAutomaticObjectId() {
//GIVEN
Address castleWinterfell = new Address("Winterfell", "Westeros", Region.THE_NORTH);
Set<Human> children = Sets.newHashSet();
children.add(Hero.createHeroWithoutChildrenAndNoBeasts("Robb", "Stark", castleWinterfell));
children.add(Heroine.createHeroineWithoutChildrenAndNoBeasts("Sansa", "Stark", castleWinterfell));
children.add(Heroine.createHeroineWithoutChildrenAndNoBeasts("Arya", "Stark", castleWinterfell));
children.add(Hero.createHeroWithoutChildrenAndNoBeasts("Bran", "Stark", castleWinterfell));
children.add(Hero.createHeroWithoutChildrenAndNoBeasts("Rickon", "Stark", castleWinterfell));
children.add(Hero.createHeroWithoutChildrenAndNoBeasts("Jon", "Snow", castleWinterfell));
Hero eddardStark = Hero.createHeroWithoutBeasts("Eddard", "Stark", castleWinterfell, children);
//WHEN
WriteResult insert = heroes.insert(eddardStark);
//THEN
Assertions.assertThat(insert.getError()).isNull();
}
项目:javacode-demo
文件:TestUpdate.java
@Test
public void shouldAddFieldToTheLightbringer() {
//GIVEN
WeaponDetails details = new WeaponDetails("The one who pulls out this sword from fire will be named Lord's Chosen ...", "Azor Ahai");
//WHEN
WriteResult lightbringer = weapons.update("{_id: #}", "Lightbringer").with("{$set: {details: #}}", details);
//THEN
assertThat(lightbringer.getError()).isNull();
//AND WHEN
Sword sword = weapons.findOne("{_id: 'Lightbringer'}").as(Sword.class);
//THEN
assertThat(sword).isNotNull();
}
项目:ALEA
文件:VariantReviewDialog.java
/**
* Add the specified mvc to the specified database
*
* @param dbSpecPath
* @param mvc
* @return
*/
static String addCall(String dbSpecPath, MongoVariantContext mvc) {
NA12878DBArgumentCollection args = new NA12878DBArgumentCollection(dbSpecPath);
String errorMessage = null;
NA12878KnowledgeBase kb = null;
try {
kb = new NA12878KnowledgeBase(null, args);
WriteResult wr = kb.addCall(mvc);
errorMessage = wr.getError();
} catch (Exception ex) {
errorMessage = ex.getMessage();
if (errorMessage == null) errorMessage = "" + ex;
} finally {
if (kb != null) kb.close();
}
return errorMessage;
}
项目:Elko
文件:MongoObjectStore.java
/**
* Perform a single 'put' operation on the local object store.
*
* @param ref Object reference string of the object to be written.
* @param obj JSON string encoding the object to be written.
* @param collection Collection to put to.
*
* @return a ResultDesc object describing the success or failure of the
* operation.
*/
private ResultDesc doPut(String ref, String obj, DBCollection collection,
boolean requireNew)
{
String failure = null;
if (obj == null) {
failure = "no object data given";
} else {
try {
DBObject objectToWrite = jsonLiteralToDBObject(obj, ref);
if (requireNew) {
WriteResult wr = collection.insert(objectToWrite);
} else {
DBObject query = new BasicDBObject();
query.put("ref", ref);
collection.update(query, objectToWrite, true, false);
}
} catch (Exception e) {
failure = e.getMessage();
}
}
return new ResultDesc(ref, failure);
}
项目:Elko
文件:MongoObjectStore.java
/**
* Perform a single 'update' operation on the local object store.
*
* @param ref Object reference string of the object to be written.
* @param version Expected version number of object before updating.
* @param obj JSON string encoding the object to be written.
* @param collection Collection to put to.
*
* @return an UpdateResultDesc object describing the success or failure of
* the operation.
*/
private UpdateResultDesc doUpdate(String ref, int version, String obj,
DBCollection collection)
{
String failure = null;
boolean atomicFailure = false;
if (obj == null) {
failure = "no object data given";
} else {
try {
DBObject objectToWrite = jsonLiteralToDBObject(obj, ref);
DBObject query = new BasicDBObject();
query.put("ref", ref);
query.put("version", version);
WriteResult result =
collection.update(query, objectToWrite, false, false);
if (result.getN() != 1) {
failure = "stale version number on update";
atomicFailure = true;
}
} catch (Exception e) {
failure = e.getMessage();
}
}
return new UpdateResultDesc(ref, failure, atomicFailure);
}
项目:authorization-server-with-mongodb
文件:MongoApprovalRepositoryImpl.java
@Override
public boolean updateOrCreate(final Collection<MongoApproval> mongoApprovals) {
boolean result = true;
for (MongoApproval mongoApproval : mongoApprovals) {
final Update update = Update
.update("expiresAt", mongoApproval.getExpiresAt())
.addToSet("status", mongoApproval.getStatus())
.addToSet("lastModifiedAt",
mongoApproval.getLastUpdatedAt());
final WriteResult writeResult = mongoTemplate.upsert(
byUserIdAndClientIdAndScope(mongoApproval), update,
MongoApproval.class);
if (writeResult.getN() != 1) {
result = false;
}
}
return result;
}
项目:ffma
文件:BaseMongoDbManager.java
/**
* This method extracts database collection name and inserts passet object in
* database.
* @param object
* Object to insert in database
* @return inserted object
* @throws ObjectNotStoredException
*/
private FfmaDomainObject storeToMongoDb(FfmaDomainObject object)
throws ObjectNotStoredException {
// TODO: check if exists? last time ? etc
DBCollection mongoCollection = db.getCollectionFromString(object
.getClass().getSimpleName());
WriteResult res = mongoCollection.insert((BasicDBObject) object);
log.debug("storeToMongoDb() coll:" + mongoCollection + ", res: " + res.toString());
try {
return retrieveObject(object);
} catch (Exception e) {
throw new ObjectNotStoredException(
"Cannot store and retreive object from db after creation!",
e);
}
}
项目:RSSReader
文件:MongoBaseDaoImpl.java
/**
*
* mongodb,解析 更新操作是否成功
*
* 返回更新数据库的结果
*
* 小于零:更新出现异常 等于零:成功执行了更新的SQL,但是没有影响到任何数据 大于零:成功执行了更新的SQL,影响到多条数据,条数就是返回值
*
* @param result
* @return
*/
@Override
public int getUpdateResult(WriteResult result) {
if (result == null) {
return FAIL_CODE_ONE;
}
@SuppressWarnings("deprecation")
CommandResult cr = result.getLastError();
if (cr == null) {
return FAIL_CODE_TWO;
}
boolean error_flag = false;
error_flag = cr.ok();
if (!error_flag) {// 获取上次操作结果是否有错误.
return FAIL_CODE_THREE;
}
int affect_count = result.getN();// 操作影响的对象个数
if (affect_count < 0) {
return FAIL_CODE_FOUR;
} else {
return affect_count;
}
}
项目:fiware-metaware
文件:AlgorithmDao.java
/**
* Removes the selected algorithm's metadata.
*
* @param id the Id of the selected algorithm's metadata.
*/
public void deleteAlgorithm(String id) {
log.debug(MSG_DAO_DELETE + id);
if (!ObjectId.isValid(id)) {
log.error(MSG_ERR_NOT_VALID_ID);
throw new BadRequestException(MSG_ERR_NOT_VALID_ID);
}
algorithmsCollection = INSTANCE.getDatasource().getDbCollection(ALGORITHMS_COLLECTION_NAME);
BasicDBObject query = new BasicDBObject();
query.put("_id", new ObjectId(id));
WriteResult wRes = algorithmsCollection.remove(query);
if (wRes.getN() == 0) {
log.error(MSG_ERR_NOT_FOUND);
throw new ResourceNotFoundException();
}
}
项目:fiware-metaware
文件:UserDao.java
/**
* Remove the selected user.
*
* @param id the Id of the selected user.
*/
public void deleteUser(String id) {
log.debug(MSG_DAO_DELETE + id + ".");
if (!ObjectId.isValid(id)) {
log.error(MSG_ERR_NOT_VALID_ID);
throw new BadRequestException(MSG_ERR_NOT_VALID_ID);
}
usersCollection = INSTANCE.getDatasource().getDbCollection(USERS_COLLECTION_NAME);
BasicDBObject query = new BasicDBObject();
query.put("_id", new ObjectId(id));
WriteResult wRes = usersCollection.remove(query);
if (wRes.getN() == 0) {
log.error(MSG_ERR_NOT_FOUND);
throw new ResourceNotFoundException();
}
}
项目:fiware-metaware
文件:DatasetDao.java
/**
* Removes the selected dataset's metadata.
*
* @param id the Id of the selected dataset's metadata.
*/
public void deleteDataset(String id) {
log.debug(MSG_DAO_DELETE);
if (!ObjectId.isValid(id)) {
log.error(MSG_ERR_NOT_VALID_ID);
throw new BadRequestException(MSG_ERR_NOT_VALID_ID);
}
datasetsCollection = INSTANCE.getDatasource().getDbCollection(DATASETS_COLLECTION_NAME);
BasicDBObject query = new BasicDBObject();
query.put("_id", new ObjectId(id));
WriteResult wRes = datasetsCollection.remove(query);
if (wRes.getN() == 0) {
log.error(MSG_ERR_NOT_FOUND);
throw new ResourceNotFoundException();
}
}
项目:fiware-metaware
文件:DepartmentDao.java
/**
* Remove the selected department.
*
* @param id the Id of the selected department.
*/
public void deleteDepartment(String id) {
log.debug(MSG_DAO_DELETE + id + ".");
if (!ObjectId.isValid(id)) {
log.error(MSG_ERR_NOT_VALID_ID);
throw new BadRequestException(MSG_ERR_NOT_VALID_ID);
}
departmentsCollection = INSTANCE.getDatasource().
getDbCollection(DEPARTMENTS_COLLECTION_NAME);
BasicDBObject query = new BasicDBObject();
query.put("_id", new ObjectId(id));
WriteResult wRes = departmentsCollection.remove(query);
if (wRes.getN() == 0) {
log.error(MSG_ERR_NOT_FOUND);
throw new ResourceNotFoundException();
}
}
项目:fiware-metaware
文件:CompanyDao.java
/**
* Remove the selected company.
*
* @param id the Id of the selected company.
*/
public void deleteCompany(String id) {
log.debug(MSG_DAO_DELETE + id + ".");
if (!ObjectId.isValid(id)) {
log.error(MSG_ERR_NOT_VALID_ID);
throw new BadRequestException(MSG_ERR_NOT_VALID_ID);
}
companiesCollection = INSTANCE.getDatasource().getDbCollection(COMPANIES_COLLECTION_NAME);
BasicDBObject query = new BasicDBObject();
query.put("_id", new ObjectId(id));
WriteResult wRes = companiesCollection.remove(query);
if (wRes.getN() == 0) {
log.error(MSG_ERR_NOT_FOUND);
throw new ResourceNotFoundException();
}
}
项目:fiware-metaware
文件:ProcessDao.java
/**
* Removes the selected process' metadata object.
*
* @param id the Id of the selected process' metadata object.
*/
public void deleteProcess(String id) {
log.debug(MSG_DAO_DELETE + id);
// Check passed Id
if (!ObjectId.isValid(id)) {
log.error(MSG_ERR_NOT_VALID_ID);
throw new BadRequestException(MSG_ERR_NOT_VALID_ID);
}
processesCollection = INSTANCE.getDatasource().getDbCollection(PROCESSES_COLLECTION_NAME);
BasicDBObject query = new BasicDBObject();
query.put("_id", new ObjectId(id));
WriteResult wRes = processesCollection.remove(query);
// Check the number of deleted objects
if (wRes.getN() == 0) { // if 0 then the query found nothing
log.error(MSG_ERR_NOT_FOUND);
throw new ResourceNotFoundException(MSG_ERR_NOT_FOUND);
}
}
项目:fiware-metaware
文件:DataSourceDao.java
/**
* Removes the selected data-source's metadata object.
*
* @param id the Id of the selected data-source's metadata object.
*/
public void deleteDataSource(String id) {
log.debug(MSG_DAO_DELETE + id);
if (!ObjectId.isValid(id)) {
log.error(MSG_ERR_NOT_VALID_ID);
throw new BadRequestException(MSG_ERR_NOT_VALID_ID);
}
datasourcesCollection
= INSTANCE.getDatasource().getDbCollection(DATASOURCES_COLLECTION_NAME);
BasicDBObject query = new BasicDBObject("_id", new ObjectId(id));
WriteResult wRes = datasourcesCollection.remove(query);
if (wRes.getN() == 0) {
log.error(MSG_ERR_NOT_FOUND);
throw new ResourceNotFoundException();
}
}
项目:jetstream
文件:MongoLogDAO.java
/**
* UPLOAD TO DB
*/
public static void insertJetStreamConfiguration(BasicDBObject dbObject,
MongoLogConnection mongoLogConnection) {
JetStreamBeanConfigurationLogDo beanConfig = null;
DBCollection dbCol = mongoLogConnection.getDBCollection();
if (dbCol == null) {
throw new MongoConfigRuntimeException(
"jetstreamconfig collection is unknown");
}
WriteResult result = dbCol.insert(dbObject);
if (result.getError() != null) {
throw new MongoConfigRuntimeException(result.getError());
}
}
项目:jetstream
文件:MongoDAO.java
public static boolean removeConfigurationByQuery(BasicDBObject query, MongoConnection mongoConnection) {
DBCollection dbCol = mongoConnection.getDBCollection();
if (dbCol == null) {
throw new MongoConfigRuntimeException("jetstreamconfig collection is unknown");
}
try {
if(query ==null) {
return false;
}
WriteResult result = dbCol.remove(query, WriteConcern.SAFE);
if(result.getLastError().ok()) {
return true;
}
} catch (Exception err) {
throw new MongoConfigRuntimeException(err);
}
return true;
}
项目:incubator-skywalking
文件:MongoDBCollectionMethodInterceptor.java
@Override public Object afterMethod(EnhancedInstance objInst, Method method, Object[] allArguments,
Class<?>[] argumentsTypes, Object ret) throws Throwable {
AbstractSpan activeSpan = ContextManager.activeSpan();
CommandResult cresult = null;
if (ret instanceof WriteResult) {
WriteResult wresult = (WriteResult)ret;
cresult = wresult.getCachedLastError();
} else if (ret instanceof AggregationOutput) {
AggregationOutput aresult = (AggregationOutput)ret;
cresult = aresult.getCommandResult();
}
if (null != cresult && !cresult.ok()) {
activeSpan.log(cresult.getException());
}
ContextManager.stopSpan();
return ret;
}
项目:mybus
文件:BusServiceMongoDAO.java
/**
* Update amenityIds for service(s). The List<JSONObject> should in the below format
* [{
* "serviceId":"1234", "amenityIds":["2323","33423","33523"]
* },{
* "serviceId":"1434", "amenityIds":["233433","3333423"]
* }]
*
* @return
*/
public boolean updateServiceAmenities(List<JSONObject> services) {
/*
BulkOperations ops = mongoTemplate.bulkOps(BulkOperations.BulkMode.UNORDERED, BusService.class);
for (JSONObject service: services) {
Query query = new Query(where(AbstractDocument.KEY_ID).is(service.get("serviceId").toString()));
Update updateOp = new Update();
updateOp.set("amenityIds", service.get("amenityIds"));
ops.updateOne(query, updateOp);
}
BulkWriteResult result = ops.execute();
return result.getModifiedCount() == services.size(); */
for (JSONObject jsonObject : services) {
Update updateOp = new Update();
updateOp.set("amenityIds", jsonObject.get("amenityIds"));
final Query query = new Query();
query.addCriteria(where("_id").is(jsonObject.get("serviceId")));
WriteResult writeResult = mongoTemplate.updateMulti(query, updateOp, BusService.class);
if(writeResult.getN() != 1) {
return false;
}
}
return true;
}
项目:mybus
文件:UserMongoDAO.java
public boolean updateCashBalance(String userId, double cashBalance) {
Update updateOp = new Update();
updateOp.inc("amountToBePaid", cashBalance);
final Query query = new Query();
query.addCriteria(where("_id").is(userId));
WriteResult writeResult = mongoTemplate.updateMulti(query, updateOp, User.class);
return writeResult.getN() == 1;
}
项目:mybus
文件:ShipmentSequenceManager.java
private ShipmentSequence nextSequeceNumber(ShipmentType shipmentType) {
ShipmentSequence shipmentSequence = null;
if(shipmentSequenceDAO.findByShipmentCode(shipmentType.getKey()) == null){
shipmentSequence = shipmentSequenceDAO.save(new ShipmentSequence(shipmentType));
} else {
Update updateOp = new Update();
updateOp.inc("nextNumber", 1);
final Query query = new Query();
query.addCriteria(where("shipmentCode").is(shipmentType.getKey()));
WriteResult writeResult = mongoTemplate.updateMulti(query, updateOp, ShipmentSequence.class);
if(writeResult.getN() == 1){
shipmentSequence = shipmentSequenceDAO.findByShipmentCode(shipmentType.getKey());
} else {
throw new IllegalStateException("next number failed");
}
}
return shipmentSequence;
}
项目:jackrabbit-dynamodb-store
文件:MongoBlobStore.java
@Override
public boolean deleteChunks(List<String> chunkIds, long maxLastModifiedTime) throws Exception {
DBCollection collection = getBlobCollection();
QueryBuilder queryBuilder = new QueryBuilder();
if (chunkIds != null) {
queryBuilder = queryBuilder.and(MongoBlob.KEY_ID).in(chunkIds.toArray(new String[0]));
if (maxLastModifiedTime > 0) {
queryBuilder = queryBuilder.and(MongoBlob.KEY_LAST_MOD)
.lessThan(maxLastModifiedTime);
}
}
WriteResult result = collection.remove(queryBuilder.get());
if (result.getN() == chunkIds.size()) {
return true;
}
return false;
}
项目:readrz-public
文件:MongoUtils.java
public final static boolean upsert(DBCollection coll, DBObject q, DBObject dbo, boolean ensureId) {
WriteResult wr = coll.update(q, dbo, true, false, WriteConcern.ACKNOWLEDGED);
boolean updatedExisting = wr.isUpdateOfExisting();
if (ensureId) {
if (updatedExisting) {
BasicDBObject f = new BasicDBObject();
f.put(MongoUtils._id, 1);
DBObject o = coll.findOne(q, f);
dbo.put(MongoUtils._id, o.get(MongoUtils._id));
} else {
ObjectId upserted = (ObjectId) wr.getUpsertedId();
dbo.put(MongoUtils._id, upserted);
}
}
return updatedExisting;
}
项目:lightblue-mongo
文件:MongoLocking.java
public void ping(String callerId, String resourceId) {
Date now = new Date();
BasicDBObject q = new BasicDBObject().
append(CALLERID, callerId).
append(RESOURCEID, resourceId).
append(EXPIRATION, new BasicDBObject("$gt", now)).
append(COUNT, new BasicDBObject("$gt", 0));
DBObject lock = coll.findOne(q,null,ReadPreference.primary());
if (lock != null) {
Date expiration = new Date(now.getTime() + ((Number) lock.get(TTL)).longValue());
int ver = ((Number) lock.get(VERSION)).intValue();
BasicDBObject update = new BasicDBObject().
append("$set", new BasicDBObject(TIMESTAMP, now).
append(EXPIRATION, expiration)).
append("$inc", new BasicDBObject(VERSION, 1));
q = q.append(VERSION, ver);
WriteResult wr = coll.update(q, update, false, false, WriteConcern.ACKNOWLEDGED);
if (wr.getN() != 1) {
throw new InvalidLockException(resourceId);
}
LOGGER.debug("{}/{} pinged", callerId, resourceId);
} else {
throw new InvalidLockException(resourceId);
}
}
项目:bugu-mongo
文件:BuguUpdater.java
private WriteResult execute(DBObject condition){
List ids = null;
if(dao.hasCustomListener){
ids = dao.getCollection().distinct(Operator.ID, condition);
}
if(isolated){
condition.put(Operator.ISOLATED, 1);
}
WriteResult wr = dao.getCollection().update(condition, modifier, false, true); //update multi
if(dao.hasCustomListener && ids != null){
DBObject in = new BasicDBObject(Operator.IN, ids);
DBCursor cursor = dao.getCollection().find(new BasicDBObject(Operator.ID, in));
List<T> list = MapperUtil.toList(dao.getEntityClass(), cursor);
for(T t : list){
dao.notifyUpdated((BuguEntity)t);
}
}
return wr;
}
项目:todo-apps
文件:MongoStoreTest.java
@Test
public void testPersist() {
DBCollection coll = createMockCollection();
ToDo td = new ToDo();
td.setTitle("This is a test");
td.setId("aaaaaaaaaaaaaaaaaaaaaaa1");
expect(coll.insert(isA(DBObject.class))).andAnswer(new IAnswer<WriteResult>() {
@Override
public WriteResult answer() throws Throwable {
DBObject obj = (DBObject)getCurrentArguments()[0];
obj.put("_id", new ObjectId("aaaaaaaaaaaaaaaaaaaaaaa1"));
return null;
}
});
replay(coll);
MongoStore store = new MongoStore(coll);
assertEquals(td, store.persist(td));
verify(coll);
}
项目:spring-security-mongo
文件:MongoApprovalRepositoryImpl.java
@Override
public boolean updateOrCreate(final Collection<MongoApproval> mongoApprovals) {
boolean result = true;
for (MongoApproval mongoApproval : mongoApprovals) {
final Update update = Update.update("expiresAt", mongoApproval.getExpiresAt())
.set("status", mongoApproval.getStatus())
.set("lastUpdatedAt", mongoApproval.getLastUpdatedAt());
final WriteResult writeResult = mongoTemplate.upsert(byUserIdAndClientIdAndScope(mongoApproval), update, MongoApproval.class);
if (writeResult.getN() != 1) {
result = false;
}
}
return result;
}
项目:FindMe_Server
文件:UserDaoImpl2Mongo.java
@Override
public boolean insertUserFans(String girlId, String boyId) {
// TODO Auto-generated method stub
DB db = MongoDBUtil.getDB();
BasicDBObject girl = new BasicDBObject();
girl.put("_id", girlId);
DBRef boyDbRef = new DBRef(db, "user", boyId);
BasicDBObject update = new BasicDBObject();
update.put("user", boyDbRef);
update.put("isPass", 0);
DBCollection users = db.getCollection(userCollection);
WriteResult res = users.update(girl, new BasicDBObject("$addToSet",
new BasicDBObject("userFans", update)), false, true);
return res.getN() > 0 ? true : false;
}
项目:FindMe_Server
文件:UserDaoImpl2Mongo.java
@Override
public boolean insertUserBoyMatch(String boyId, String girlId) {
// TODO Auto-generated method stub
DB db = MongoDBUtil.getDB();
BasicDBObject boy = new BasicDBObject();
boy.put("_id", boyId);
DBRef girlDbRef = new DBRef(db, "user", girlId);
BasicDBObject update = new BasicDBObject();
update.put("user", girlDbRef);
update.put("isPass", 0);
DBCollection users = db.getCollection(userCollection);
WriteResult res = users.update(boy, new BasicDBObject("$addToSet",
new BasicDBObject("userMatch", update)), false, true);
return res.getN() > 0 ? true : false;
}
项目:addons-social-activity-mongodb
文件:ActivityMongoStorageImpl.java
private void updateActivityRef(String activityId, long time, boolean isHidden) {
DBCollection activityColl = CollectionName.ACTIVITY_COLLECTION.getCollection(this.abstractMongoStorage);
//
BasicDBObject update = new BasicDBObject();
Map<String, Object> fields = new HashMap<String, Object>();
fields.put(ActivityMongoEntity.lastUpdated.getName(), time);
fields.put(ActivityMongoEntity.hidable.getName(), isHidden);
BasicDBObject set = new BasicDBObject(fields);
//
update.append("$set", set);
BasicDBObject query = new BasicDBObject(ActivityMongoEntity.id.getName(), new ObjectId(activityId));
WriteResult result = activityColl.update(query, update);
LOG.debug("UPDATED TIME ACTIVITY: " + result.toString());
//update refs
DBCollection streamCol = CollectionName.STREAM_ITEM_COLLECTION.getCollection(this.abstractMongoStorage);
query = new BasicDBObject(StreamItemMongoEntity.activityId.getName(), activityId);
fields = new HashMap<String, Object>();
fields.put(StreamItemMongoEntity.time.getName(), time);
fields.put(StreamItemMongoEntity.hiable.getName(), isHidden);
set = new BasicDBObject(fields);
update = new BasicDBObject("$set", set);
result = streamCol.updateMulti(query, update);
LOG.debug("UPDATED ACTIVITY Reference: " + result.toString());
}
项目:EUMSSI-platform
文件:QueryManager.java
/**
* Reset list of pending content items to process
*
* @param queueId ID of processing queue
* @param inProcessOnly only reset items marked as "in_process"
* @return number of reset items
* @throws EumssiException with a specific StatusType, if one of the following scenarios occurs:
* <br>
* <br><code>StatusType.ERROR_INVALID_QUEUE_ID</code> (Error 102) if the specified queue id does not correspond to a valid queue.
* <br>
* <br><code>StatusType.ERROR_DB_CONNECT</code> (Error 400) if an unhandled error occurred during acquisition of the database connection.
* <br><code>StatusType.ERROR_DB_QUERY</code> (Error 401) if an unhandled error occurred during the query execution.
* <br><code>StatusType.ERROR_UNKNOWN</code> (Error 999) if an unhandled exception is thrown.
*/
public Integer resetQueue(String queueId, Boolean inProcessOnly, String filters) throws EumssiException {
DBObject query = null;
if (this.queues.containsKey(queueId)) {
query = (DBObject) JSON.parse(this.queues.getProperty(queueId));
// check that item is marked as in_process
String testReset = String.format("{\"processing.queues.%s\":\"in_process\"}", queueId);
if (!inProcessOnly) { // reset all items, even if already processed
testReset = String.format("{\"processing.queues.%s\":{\"$in\":[\"in_process\",\"processed\"]}}", queueId);
}
query.putAll((BSONObject) JSON.parse(testReset));
query.putAll((BSONObject) JSON.parse(filters)); // apply user-provided filters
} else {
throw new EumssiException(StatusType.ERROR_INVALID_QUEUE_ID);
}
try {
log.info("performing query "+query.toString()+" on collection "+this.collection.toString());
WriteResult r = collection.update(query, new BasicDBObject("$set", new BasicDBObject("processing.results."+queueId,"pending")));
Integer updatedCount = r.getN();
return updatedCount;}
catch (Exception e) {
// TODO: better handle possible failures
throw new EumssiException(StatusType.ERROR_UNKNOWN);
}
}
项目:EUMSSI-platform
文件:QueryManager.java
/**
* TODO: document method
* @param queueId
* @param data
* @return
*/
public Integer putResults(String queueId, String data) throws EumssiException {
Integer updatedCount = 0;
BasicDBList jsonData = (BasicDBList) JSON.parse(data);
for (Object item : jsonData) {
try {
String itemId = (String) ((DBObject)item).get("content_id");
WriteResult r = collection.update(new BasicDBObject("_id", UUID.fromString(itemId)), new BasicDBObject("$set", new BasicDBObject("processing.results."+queueId,((DBObject) item).get("result"))));
collection.update(
new BasicDBObject("_id", UUID.fromString(itemId)),
new BasicDBObject()
.append("$set", new BasicDBObject("processing.queues."+queueId,"processed"))
.append("$pull", new BasicDBObject("processing.available_data",queueId))
);
updatedCount += r.getN();
} catch (Exception e) { //TODO: better exception handling
log.error(String.format("couldn't insert data in document %s", item), e);
}
}
return updatedCount;
}