本文整理了Java中com.mongodb.client.model.Updates
类的一些代码示例,展示了Updates
类的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Updates
类的具体详情如下:
包路径:com.mongodb.client.model.Updates
类名称:Updates
[英]A factory for document updates. A convenient way to use this class is to statically import all of its methods, which allows usage like:
collection.updateOne(eq("x", 1), set("x", 2));
[中]用于文档更新的工厂。使用这个类的一个方便方法是静态导入它的所有方法,这允许像这样使用:
collection.updateOne(eq("x", 1), set("x", 2));
代码示例来源:origin: Graylog2/graylog2-server
final String streamId = document.getObjectId(FIELD_ID).toHexString();
if (!document.containsKey(FIELD_ALERT_CONDITIONS)) {
continue;
final List<Document> alertConditions = (List<Document>) document.get(FIELD_ALERT_CONDITIONS);
final UpdateResult result = collection.updateOne(eq(FIELD_ALERT_CONDITIONS_ID, alertConditionId), set(ALERT_CONDITIONS_PARAMETERS_PREFIX + field, intValue));
if (result.getMatchedCount() > 0) {
modifiedStreams.add(streamId);
modifiedAlertConditions.add(alertConditionId);
代码示例来源:origin: pippo-java/pippo
@Override
public void save(SessionData sessionData) {
String sessionId = sessionData.getId();
this.sessions.updateOne(
eq(SESSION_ID, sessionId),
combine(
set(SESSION_ID, sessionId),
set(SESSION_TTL, new Date()),
set(SESSION_DATA, transcoder.encode(sessionData))),
new UpdateOptions().upsert(true));
}
代码示例来源:origin: Graylog2/graylog2-server
@Override
public void upgrade() {
if (clusterConfigService.get(MigrationCompleted.class) != null) {
LOG.debug("Migration already done.");
return;
}
// Do not overwrite an existing default index config
boolean defaultDone = clusterConfigService.get(DefaultIndexSetConfig.class) != null;
final ImmutableSet.Builder<String> builder = ImmutableSet.builder();
final FindIterable<Document> documents = collection.find(exists(FIELD_DEFAULT)).sort(ascending(FIELD_CREATION_DATE));
for (final Document document : documents) {
final ObjectId id = document.getObjectId(FIELD_ID);
final String idString = id.toHexString();
final boolean isDefault = firstNonNull(document.getBoolean(FIELD_DEFAULT), false);
if (!defaultDone && isDefault) {
defaultDone = true;
clusterConfigService.write(DefaultIndexSetConfig.create(idString));
}
final long modifiedCount = collection.updateOne(eq(FIELD_ID, id), unset(FIELD_DEFAULT)).getMatchedCount();
if (modifiedCount > 0) {
LOG.info("Removed <default> field from index set <{}> ({})", document.getString(FIELD_TITLE), idString);
builder.add(idString);
} else {
LOG.error("Couldn't remove <default> field from index set <{}> ({})", document.getString(FIELD_TITLE), idString);
}
}
clusterConfigService.write(MigrationCompleted.create(builder.build()));
}
代码示例来源:origin: opencb/opencga
updates.add(push(STUDIES_FIELD, studyDocument));
updates.add(addToSet(RELEASE_FIELD, release));
if (newVariant) {
Document variantDocument = variantConverter.convertToStorageType(emptyVar);
updates.add(addEachToSet(IDS_FIELD, ids));
Object value = entry.getValue();
if (value instanceof List) {
updates.add(setOnInsert(entry.getKey(), new BsonArray(((List) value))));
} else {
updates.add(setOnInsert(entry.getKey(), value));
mongoDBOps.getNewStudy().getQueries().add(eq("_id", id));
mongoDBOps.getNewStudy().getUpdates().add(combine(updates));
} else {
id = null;
List<Bson> mergeUpdates = new LinkedList<>();
if (!ids.isEmpty()) {
mergeUpdates.add(addEachToSet(IDS_FIELD, ids));
List sampleIds = getListFromDocument(gts, gt);
if (resume) {
mergeUpdates.add(addEachToSet(STUDIES_FIELD + ".$." + GENOTYPES_FIELD + '.' + gt, sampleIds));
} else {
mergeUpdates.add(pushEach(STUDIES_FIELD + ".$." + GENOTYPES_FIELD + '.' + gt, sampleIds));
mergeUpdates.add(addEachToSet(STUDIES_FIELD + ".$." + ALTERNATES_FIELD, secondaryAlternates));
代码示例来源:origin: epam/DLab
and(runningExploratoryAndComputationalCondition(user, exploratoryName, computationalName),
eq(COMPUTATIONAL_LIBS + "." + computationalName + "." + LIB_GROUP, library.getGroup()),
eq(COMPUTATIONAL_LIBS + "." + computationalName + "." + LIB_NAME, library.getName())));
push(COMPUTATIONAL_LIBS + "." + computationalName, convertToBson(library)));
return true;
} else {
Document values = updateComputationalLibraryFields(computationalName, library, null);
if (reinstall) {
values.append(computationalLibraryFieldFilter(computationalName, LIB_INSTALL_DATE), null);
values.append(computationalLibraryFieldFilter(computationalName, LIB_ERROR_MESSAGE), null);
eq(COMPUTATIONAL_LIBS + "." + computationalName + "." + LIB_NAME, library.getName())),
new Document(SET, values));
代码示例来源:origin: opencb/opencga
MongoDBVariantStageReader.addChromosomeFilter(chrFilters, chromosome);
chrFilter = or(chrFilters);
} else {
chrFilter = new Document();
updates.add(set(studyId + "." + fileId, null));
filters.add(
or(
ne(StageDocumentToVariantConverter.STUDY_FILE_FIELD, studyFile),
and(
updates.add(pullAll(StageDocumentToVariantConverter.STUDY_FILE_FIELD, studyFiles));
Bson filter = and(in(StageDocumentToVariantConverter.STUDY_FILE_FIELD, studyFiles), chrFilter, and(filters));
LOGGER.info("Clean studies from stage where all the files where duplicated");
modifiedCount += stageCollection.update(
filter, combine(updates),
new QueryOptions(MongoDBCollection.MULTI, true)).first().getModifiedCount();
List<Bson> updates = new LinkedList<>();
for (Integer fileId : fileIds) {
updates.add(unset(studyId + "." + fileId));
updates.add(set(studyId + "." + NEW_STUDY_FIELD, false));
updates.add(pullAll(StageDocumentToVariantConverter.STUDY_FILE_FIELD, studyFiles));
LOGGER.info("Cleaning files {} from stage collection", fileIds);
modifiedCount += stageCollection.update(and(filters), combine(updates),
new QueryOptions(MongoDBCollection.MULTI, true)).first().getModifiedCount();
代码示例来源:origin: uk.gov.dstl.baleen/baleen-mallet
private void writeTopicAssignmentsToMongo(
InstanceList instances, TopicWords topicWords, ParallelTopicModel model) {
IntStream.range(0, instances.size())
.forEach(
document -> {
double[] topicDistribution = model.getTopicProbabilities(document);
int maxAt = new MaximumIndex(topicDistribution).find();
Instance instance = instances.get(document);
List<String> iterator = topicWords.forTopic(maxAt);
documentsCollection.findOneAndUpdate(
Filters.eq(new ObjectId((String) instance.getName())),
Updates.set(
TOPIC_FIELD,
new Document()
.append(KEYWORDS_FIELD, iterator.toString())
.append(TOPIC_NUMBER_FIELD, maxAt)));
});
}
代码示例来源:origin: opencb/opencga
private void addPrivateVariableMap(long entryId, Map<String, String> variableMap, boolean isVersioned) throws CatalogDBException {
Document queryDocument = new Document(PRIVATE_UID, entryId);
if (isVersioned) {
queryDocument.append(LAST_OF_VERSION, true);
}
List<Bson> setMap = new ArrayList<>(variableMap.size());
for (Map.Entry<String, String> entry : variableMap.entrySet()) {
setMap.add(Updates.set(AnnotationSetParams.PRIVATE_VARIABLE_SET_MAP.key() + "." + entry.getKey(), entry.getValue()));
}
QueryResult<UpdateResult> update = getCollection().update(queryDocument, Updates.combine(setMap), new QueryOptions("multi", true));
if (update.first().getModifiedCount() < 1 && update.first().getMatchedCount() == 0) {
throw new CatalogDBException("Could not add new private map information");
}
}
代码示例来源:origin: opencb/opencga
collection.update(new Document("_id", id), set("_id", id), new QueryOptions(MongoDBCollection.UPSERT, true));
} catch (MongoWriteException e) {
Date now = Calendar.getInstance().getTime();
Bson query = and(eq("_id", id), or(eq(lockWriteField, null), lt(lockWriteField, now)));
Bson update = combine(set(lockWriteField, date));
modifiedCount = collection.update(query, update, null).first().getModifiedCount();
代码示例来源:origin: opencb/opencga
@Override
public void nativeInsert(Map<String, Object> project, String userId) throws CatalogDBException {
Bson query = Filters.and(Filters.eq(UserDBAdaptor.QueryParams.ID.key(), userId),
Filters.ne(UserDBAdaptor.QueryParams.PROJECTS_ID.key(), project.get(QueryParams.ID.key())));
Bson update = Updates.push("projects", getMongoDBDocument(project, "project"));
//Update object
QueryResult<UpdateResult> queryResult = userCollection.update(query, update, null);
if (queryResult.getResult().get(0).getModifiedCount() == 0) { // Check if the project has been inserted
throw new CatalogDBException("Project {" + project.get(QueryParams.ID.key()) + "\"} already exists for this user");
}
}
代码示例来源:origin: opencb/opencga
private void removePrivateVariableMap(long entryId, Map<String, String> privateVariableMapToSet, boolean isVersioned)
throws CatalogDBException {
Document queryDocument = new Document(PRIVATE_UID, entryId);
if (isVersioned) {
queryDocument.append(LAST_OF_VERSION, true);
}
for (Map.Entry<String, String> entry : privateVariableMapToSet.entrySet()) {
// We only want to remove the private variable map if it is not currently in use by any annotation set
queryDocument.append(AnnotationSetParams.VARIABLE_SET_ID.key(), new Document("$ne", Long.parseLong(entry.getKey())));
Bson unset = Updates.unset(AnnotationSetParams.PRIVATE_VARIABLE_SET_MAP.key() + "." + entry.getKey());
QueryResult<UpdateResult> update = getCollection().update(queryDocument, unset, new QueryOptions());
if (update.first().getModifiedCount() < 1 && update.first().getMatchedCount() == 1) {
throw new CatalogDBException("Could not remove private map information");
}
}
}
代码示例来源:origin: opencb/opencga
private int generateId(String idType, boolean retry) throws StorageEngineException {
String field = COUNTERS_FIELD + '.' + idType;
Document projection = new Document(field, true);
Bson inc = Updates.inc(field, 1);
QueryOptions queryOptions = new QueryOptions("returnNew", true);
QueryResult<Document> result = collection.findAndUpdate(QUERY, projection, null, inc, queryOptions);
if (result.first() == null) {
if (retry) {
ensureProjectMetadataExists();
return generateId(idType, false);
} else {
throw new StorageEngineException("Error creating new ID. Project Metadata not found");
}
} else {
Document document = result.getResult().get(0);
Document counters = document.get(COUNTERS_FIELD, Document.class);
Integer id = counters.getInteger(idType);
// System.out.println("New ID " + idType + " : " + id);
return id;
}
}
代码示例来源:origin: opencb/opencga
List<Bson> updates = new ArrayList<>(retryIds != null ? retryIds.size() : values.size());
for (Document id : values.keySet()) {
String mongoId = id.getString(StageDocumentToVariantConverter.ID_FIELD);
if (retryIds == null || retryIds.contains(mongoId)) {
ids.add(mongoId);
List<Binary> binaryList = values.get(id);
queries.add(eq(StageDocumentToVariantConverter.ID_FIELD, mongoId));
List<Bson> bsons = new ArrayList<>(6);
if (directLoad) {
bsons.add(set(fieldName, null));
bsons.add(set(studyIdStr + '.' + NEW_STUDY_FIELD, false));
} else if (binaryList.size() == 1) {
bsons.add(resumeStageLoad ? addToSet(fieldName, binaryList.get(0)) : push(fieldName, binaryList.get(0)));
} else {
bsons.add(resumeStageLoad ? addEachToSet(fieldName, binaryList) : pushEach(fieldName, binaryList));
bsons.add(addEachToSet(StageDocumentToVariantConverter.STUDY_FILE_FIELD, studyFileValue));
bsons.add(setOnInsert(StageDocumentToVariantConverter.END_FIELD, id.get(StageDocumentToVariantConverter.END_FIELD)));
bsons.add(setOnInsert(StageDocumentToVariantConverter.REF_FIELD, id.get(StageDocumentToVariantConverter.REF_FIELD)));
bsons.add(setOnInsert(StageDocumentToVariantConverter.ALT_FIELD, id.get(StageDocumentToVariantConverter.ALT_FIELD)));
updates.add(combine(bsons));
代码示例来源:origin: opencb/opencga
@Deprecated
static long getNewAutoIncrementId(String field, MongoDBCollection metaCollection) {
Bson query = Filters.eq(PRIVATE_ID, MongoDBAdaptorFactory.METADATA_OBJECT_ID);
Document projection = new Document(field, true);
Bson inc = Updates.inc(field, 1);
QueryOptions queryOptions = new QueryOptions("returnNew", true);
QueryResult<Document> result = metaCollection.findAndUpdate(query, projection, null, inc, queryOptions);
// return (int) Float.parseFloat(result.getResult().get(0).get(field).toString());
return result.getResult().get(0).getInteger(field);
}
代码示例来源:origin: epam/DLab
/**
* Update EDGE cost in Mongo DB.
*
* @param user the name of user.
*/
private void updateEdgeCost(String user) {
List<? extends Bson> pipeline = Arrays.asList(
match(and(eq(FIELD_USER, user),
eq(FIELD_EXPLORATORY_NAME, null))),
group(getGrouppingFields(ReportLine.FIELD_CURRENCY_CODE),
sum(ReportLine.FIELD_COST, "$" + ReportLine.FIELD_COST))
);
AggregateIterable<Document> docs = connection.getCollection(COLLECTION_BILLING_TOTAL)
.aggregate(pipeline);
MongoCollection<Document> cEdge = connection.getCollection(COLLECTION_USER_EDGE);
for (Document d : docs) {
Document id = (Document) d.get(FIELD_ID);
Bson values = Updates.combine(
Updates.set(ReportLine.FIELD_COST, BillingCalculationUtils.round(d.getDouble(ReportLine
.FIELD_COST), 2)),
Updates.set(FIELD_CURRENCY_CODE, id.get(ReportLine.FIELD_CURRENCY_CODE)));
cEdge.updateOne(
eq(FIELD_ID, user),
values);
}
}
代码示例来源:origin: atlanmod/NeoEMF
@Override
public void removeContainer(Id id) {
checkNotNull(id, "id");
final String ownerId = idConverter.convert(id);
final Bson filter = and(eq(ModelDocument.F_ID, ownerId), exists(ModelDocument.F_CONTAINER));
final Bson update = unset(ModelDocument.F_CONTAINER);
documents.updateOne(filter, update);
}
代码示例来源:origin: org.axonframework/axon-mongo
/**
* {@inheritDoc}
*/
@Override
public void releaseClaim(String processorName, int segment) {
UpdateResult updateResult = mongoTemplate.trackingTokensCollection()
.updateOne(and(
eq("processorName", processorName),
eq("segment", segment),
eq("owner", nodeId)
), set("owner", null));
if (updateResult.getMatchedCount() == 0) {
logger.warn("Releasing claim of token {}/{} failed. It was owned by another node.", processorName, segment);
}
}
代码示例来源:origin: de.otto.edison/edison-mongo
@Override
public boolean createValue(final String jobType, final String key, final String value) {
final Bson filter = and(
eq(ID, jobType),
exists(key, false));
final Bson update = set(key, value);
try {
final Document previous = collection.findOneAndUpdate(filter, update, UPSERT);
return previous == null || previous.getString(key) == null;
} catch (final Exception e) {
return false;
}
}
代码示例来源:origin: de.bwaldvogel/mongo-java-server-test-common
@Test
public void testUpsertWithoutId() {
UpdateResult result = collection.updateOne(eq("a", 1), set("a", 2), new UpdateOptions().upsert(true));
assertThat(result.getModifiedCount()).isEqualTo(0);
assertThat(result.getUpsertedId()).isNotNull();
assertThat(collection.find().first().get("_id")).isInstanceOf(ObjectId.class);
assertThat(collection.find().first().get("a")).isEqualTo(2);
}
代码示例来源:origin: opencb/opencga
@Override
public QueryResult updateProjectMetadata(ProjectMetadata projectMetadata, boolean updateCounters) {
Document mongo = new GenericDocumentComplexConverter<>(ProjectMetadata.class).convertToStorageType(projectMetadata);
// Update field by field, instead of replacing the whole object to preserve existing fields like "_lock"
List<Bson> updates = new ArrayList<>(mongo.size());
mongo.forEach((s, o) -> {
// Do not update counters
if (updateCounters || !s.equals(COUNTERS_FIELD)) {
updates.add(new Document("$set", new Document(s, o)));
}
});
return collection.update(QUERY, Updates.combine(updates), new QueryOptions(UPSERT, true));
}
内容来源于网络,如有侵权,请联系作者删除!