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 |
@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 |
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 |
@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 |
@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 |
@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 |
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 |
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 |
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 |
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 |
/** * 获取岗位 * * @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 |
/** * 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 |
/** * 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 |
public AggregationOutput aggregate(DBObject ... ops);