com.mongodb.AggregationOutput Java Examples

The following examples show how to use com.mongodb.AggregationOutput. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: MongoDBCollectionMethodInterceptor.java    From skywalking with Apache License 2.0 6 votes vote down vote up
@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;
}
 
Example #2
Source File: MongoRoomBuilder.java    From sissi with Apache License 2.0 5 votes vote down vote up
public String reserved(JID jid) {
	// {"$match":{"jid":group.bare}}, {"$unwind":"$affiliations"}, {"$match":{"affiliations.jid":jid.bare}}, {"$project":{"nick":"$affiliations.nick"}}
	AggregationOutput output = MongoRoomBuilder.this.config.collection().aggregate(BasicDBObjectBuilder.start("$match", BasicDBObjectBuilder.start(Dictionary.FIELD_JID, this.group.asStringWithBare()).get()).get(), MongoRoomBuilder.this.unwind, BasicDBObjectBuilder.start("$match", BasicDBObjectBuilder.start(Dictionary.FIELD_AFFILIATIONS + "." + Dictionary.FIELD_JID, jid.asStringWithBare()).get()).get(), MongoRoomBuilder.this.project);
	@SuppressWarnings("deprecation")
	List<?> result = MongoUtils.asList(output.getCommandResult(), Dictionary.FIELD_RESULT);
	return result.isEmpty() ? null : MongoUtils.asString(DBObject.class.cast(result.get(0)), Dictionary.FIELD_NICK);
}
 
Example #3
Source File: MongoMucRelationContext.java    From sissi with Apache License 2.0 5 votes vote down vote up
@Override
public Relation ourRelation(JID from, JID to) {
	AggregationOutput output = this.config.collection().aggregate(this.buildMatcher(to), this.unwindRoles, this.unwindAffiliation, BasicDBObjectBuilder.start().add("$match", BasicDBObjectBuilder.start().add(Dictionary.FIELD_ROLES + "." + Dictionary.FIELD_JID, from.asStringWithBare()).add(Dictionary.FIELD_ROLES + "." + Dictionary.FIELD_RESOURCE, from.resource()).get()).get(), this.projectRelation, this.match, this.sort, this.limit);
	@SuppressWarnings("deprecation")
	List<?> result = MongoUtils.asList(output.getCommandResult(), Dictionary.FIELD_RESULT);
	return result.isEmpty() ? new NoneRelation(from, to, this.affiliation(from, to)) : new MongoRelation(DBObject.class.cast(result.get(0)));
}
 
Example #4
Source File: MongoMucRelationContext.java    From sissi with Apache License 2.0 5 votes vote down vote up
@Override
public Set<JID> whoSubscribedMe(JID from) {
	AggregationOutput output = this.config.collection().aggregate(this.buildMatcher(from), this.projectRoles, this.unwindRoles, this.groupSubscribe);
	@SuppressWarnings("deprecation")
	List<?> result = MongoUtils.asList(output.getCommandResult(), Dictionary.FIELD_RESULT);
	return result.isEmpty() ? this.jidset : new JIDGroup(MongoUtils.asList(DBObject.class.cast(result.get(0)), Dictionary.FIELD_ROLES));
}
 
Example #5
Source File: MongoMucRelationContext.java    From sissi with Apache License 2.0 5 votes vote down vote up
@Override
public JIDs mapping(JID group) {
	// {"$match":{"jid":group.bare}}, {"$unwind":"$roles"}, {"$match":{"roles.nick":Xxx}}, {"$project":{"roles":"$roles"}}, {"$group":{"_id":"$roles.jid","resource":{"$push":"$roles.resource"}}}
	AggregationOutput output = this.config.collection().aggregate(this.buildMatcher(group), this.unwindRoles, BasicDBObjectBuilder.start().add("$match", BasicDBObjectBuilder.start(Dictionary.FIELD_ROLES + "." + Dictionary.FIELD_NICK, group.resource()).get()).get(), this.projectRoles, this.groupMapping);
	@SuppressWarnings("deprecation")
	List<?> result = MongoUtils.asList(output.getCommandResult(), Dictionary.FIELD_RESULT);
	return result.isEmpty() ? this.jids : this.extract(DBObject.class.cast(result.get(0)));
}
 
Example #6
Source File: MongoMucRelation4RoleContext.java    From sissi with Apache License 2.0 5 votes vote down vote up
public Set<Relation> myRelations(JID from, String role) {
	// {"$match":{"jid":group.bare}}, {"$unwind":"$roles"}, {"$match":{"roles.role":Xxx}}, {"$group":{"_id":{"jid":"$jid","creator":"$creator","affiliations":"$affiliations"},"roles":{"$addToSet":"$roles"}}}, {"$project":{"jid":"$_id.jid","creator":"$_id.creator","affiliations":"$_id.affiliations","roles":"$roles"}}
	AggregationOutput output = super.config.collection().aggregate(this.buildMatcher(from), super.unwindRoles, BasicDBObjectBuilder.start().add("$match", BasicDBObjectBuilder.start(Dictionary.FIELD_ROLES + "." + Dictionary.FIELD_ROLE, role).get()).get(), this.group, this.projectRole);
	@SuppressWarnings("deprecation")
	List<?> result = MongoUtils.asList(output.getCommandResult(), Dictionary.FIELD_RESULT);
	return result.isEmpty() ? this.relations : new MongoRelations(DBObject.class.cast(result.get(0)));
}
 
Example #7
Source File: MongoMucRelationContext.java    From sissi with Apache License 2.0 4 votes vote down vote up
public Set<Relation> ourRelations(JID from, JID to) {
	AggregationOutput output = this.config.collection().aggregate(this.buildMatcher(to), this.unwindRoles, BasicDBObjectBuilder.start().add("$match", BasicDBObjectBuilder.start().add(Dictionary.FIELD_ROLES + "." + Dictionary.FIELD_JID, from.asStringWithBare()).get()).get(), this.groupRelations, this.projectRelations);
	@SuppressWarnings("deprecation")
	List<?> result = MongoUtils.asList(output.getCommandResult(), Dictionary.FIELD_RESULT);
	return result.isEmpty() ? this.relations : new MongoRelations(DBObject.class.cast(result.get(0)));
}
 
Example #8
Source File: MongoMucRelation4AffiliationContext.java    From sissi with Apache License 2.0 4 votes vote down vote up
public Set<Relation> myRelations(JID from, String affiliation) {
	// {"$match":{"jid":group.bare}}, {"$unwind":"$affiliations"}, {"$match":{"affiliations.affiliation":Xxx}}, {"$project":{"affiliation":"$affiliations"}}
	AggregationOutput output = super.config.collection().aggregate(super.buildMatcher(from), super.unwindAffiliation, BasicDBObjectBuilder.start("$match", BasicDBObjectBuilder.start(Dictionary.FIELD_AFFILIATIONS + "." + Dictionary.FIELD_AFFILIATION, affiliation).get()).get(), this.projectAffiliation);
	@SuppressWarnings("deprecation")
	List<?> result = MongoUtils.asList(output.getCommandResult(), Dictionary.FIELD_RESULT);
	return result.isEmpty() ? super.relations : new AffiliationRelations(result);
}
 
Example #9
Source File: MongoProxyConfig.java    From sissi with Apache License 2.0 4 votes vote down vote up
public AggregationOutput aggregate(final DBObject... ops) {
	this.log("aggregate", ops);
	return MongoProxyConfig.this.collection.aggregate(Arrays.asList(ops));
}
 
Example #10
Source File: MongoMucRelationContext.java    From sissi with Apache License 2.0 3 votes vote down vote up
/**
 * 获取岗位
 * 
 * @param from
 * @param to
 * @param def 默认值
 * @return
 */
private ItemAffiliation affiliation(JID from, JID to, ItemAffiliation def) {
	// {"$match":{"jid":to.bare}},{"$unwind":"$affiliations"},{"$match":{"affiliations.jid":from.bare}},{"$project":{"affiliation":"$affiliations.affiliation"}}
	AggregationOutput output = this.config.collection().aggregate(BasicDBObjectBuilder.start("$match", BasicDBObjectBuilder.start(Dictionary.FIELD_JID, to.asStringWithBare()).get()).get(), this.unwindAffiliation, BasicDBObjectBuilder.start("$match", BasicDBObjectBuilder.start(Dictionary.FIELD_AFFILIATIONS + "." + Dictionary.FIELD_JID, from.asStringWithBare()).get()).get(), this.projectAffiliations);
	@SuppressWarnings("deprecation")
	List<?> result = MongoUtils.asList(output.getCommandResult(), Dictionary.FIELD_RESULT);
	return result.isEmpty() ? def : ItemAffiliation.parse(MongoUtils.asString(DBObject.class.cast(result.get(0)), Dictionary.FIELD_AFFILIATION).toString());
}
 
Example #11
Source File: MongoDB.java    From act with GNU General Public License v3.0 2 votes vote down vote up
/**
 * Setup the ability to use MongoDB's aggregation framework.
 * This greatly greatly simplifies pulling out highly nested and unstructured data from the db.
 *
 * This method performs the query over the sequence database.
 *
 * References: https://docs.mongodb.com/manual/aggregation/
 * @param pipeline A list of DBObjects that will be sequentially applied via aggregate.
 * @return An iterator over all the matching objects.
   */
public Iterator<DBObject> applyPipelineOverSequences(List<DBObject> pipeline){
  AggregationOutput cursor = this.dbSeq.aggregate(pipeline);
  return cursor.results().iterator();
}
 
Example #12
Source File: MongoDB.java    From act with GNU General Public License v3.0 2 votes vote down vote up
/**
 * Setup the ability to use MongoDB's aggregation framework.
 * This greatly greatly simplifies pulling out highly nested and unstructured data from the db.
 *
 * This method performs the query over the sequence reaction.
 *
 * References: https://docs.mongodb.com/manual/aggregation/
 * @param pipeline A list of DBObjects that will be sequentially applied via aggregate.
 * @return An iterator over all the matching objects.
 */
public Iterator<DBObject> applyPipelineOverReactions(List<DBObject> pipeline){
  AggregationOutput cursor = this.dbReactions.aggregate(pipeline);
  return cursor.results().iterator();
}
 
Example #13
Source File: MongoCollection.java    From sissi with Apache License 2.0 votes vote down vote up
public AggregationOutput aggregate(DBObject ... ops);