Java 类com.mongodb.Function 实例源码
项目:epcis
文件:ChronoGraph.java
/**
* Return non-redundant timestamps of all graph element events
*
* @return HashSet<Long> timestamps
*/
public TreeSet<Long> getTimestamps() {
TreeSet<Long> timestampSet = new TreeSet<Long>();
Function<BsonDateTime, Long> mapper = new Function<BsonDateTime, Long>() {
@Override
public Long apply(BsonDateTime val) {
return val.getValue();
}
};
edgeEvents.distinct(Tokens.TIMESTAMP, BsonDateTime.class)
.filter(new BsonDocument(Tokens.TIMESTAMP, new BsonDocument(Tokens.FC.$ne.toString(), new BsonNull())))
.map(mapper).into(timestampSet);
Set<Long> vtSet = new TreeSet<Long>();
vertexEvents.distinct(Tokens.TIMESTAMP, BsonDateTime.class)
.filter(new BsonDocument(Tokens.TIMESTAMP, new BsonDocument(Tokens.FC.$ne.toString(), new BsonNull())))
.map(mapper).into(vtSet);
timestampSet.addAll(vtSet);
return timestampSet;
}
项目:epcis
文件:ChronoGraph.java
public TreeSet<Long> getTimestamps(Long startTime, Long endTime) {
TreeSet<Long> timestampSet = new TreeSet<Long>();
Function<BsonDateTime, Long> mapper = new Function<BsonDateTime, Long>() {
@Override
public Long apply(BsonDateTime val) {
return val.getValue();
}
};
edgeEvents.distinct(Tokens.TIMESTAMP, BsonDateTime.class)
.filter(new BsonDocument(Tokens.TIMESTAMP,
new BsonDocument(Tokens.FC.$gt.toString(), new BsonDateTime(startTime))
.append(Tokens.FC.$lt.toString(), new BsonDateTime(endTime))))
.map(mapper).into(timestampSet);
Set<Long> vtSet = new TreeSet<Long>();
vertexEvents.distinct(Tokens.TIMESTAMP, BsonDateTime.class)
.filter(new BsonDocument(Tokens.TIMESTAMP,
new BsonDocument(Tokens.FC.$gt.toString(), new BsonDateTime(startTime))
.append(Tokens.FC.$lt.toString(), new BsonDateTime(endTime))))
.map(mapper).into(timestampSet);
timestampSet.addAll(vtSet);
return timestampSet;
}
项目:epcis
文件:ChronoGraph.java
public HashSet<Long> getTimestampsHashSet() {
HashSet<Long> timestampSet = new HashSet<Long>();
Function<BsonDateTime, Long> mapper = new Function<BsonDateTime, Long>() {
@Override
public Long apply(BsonDateTime val) {
return val.getValue();
}
};
edges.distinct(Tokens.TIMESTAMP, BsonDateTime.class)
.filter(new BsonDocument(Tokens.TIMESTAMP, new BsonDocument(Tokens.FC.$ne.toString(), new BsonNull())))
.map(mapper).into(timestampSet);
return timestampSet;
}
项目:ibm-performance-monitor
文件:ProfiledMapMongotIterable.java
public ProfiledMapMongotIterable(MongoIterable<U> map, Function<TResult, U> mapper, ProfiledCursorCreator creator)
{
super();
this.mongoIterable = map;
this.mapper = mapper;
this.creator = creator;
}
项目:ibm-performance-monitor
文件:ProfiledMongoClientTest.java
@Test
public void testAggregate()
{
List<Document> docList = new ArrayList<Document>();
coll.aggregate(Arrays.asList(Aggregates.match(Filters.eq("name", "Alto")),
Aggregates.group("color", Accumulators.sum("count", 1)))).into(docList);
assertEquals(1, docList.size());
docList.clear();
Document first = coll
.aggregate(Arrays.asList(Aggregates.match(Filters.eq("name", "Alto")),
Aggregates.group("color", Accumulators.sum("count", 1))), Document.class)
.allowDiskUse(true).batchSize(12).bypassDocumentValidation(true).collation(Collation.builder().build())
.first();
Assert.assertNotNull(first);
first = coll
.aggregate(Arrays.asList(Aggregates.match(Filters.eq("name", "Alto")),
Aggregates.group("color", Accumulators.sum("count", 1))), Document.class)
.allowDiskUse(true).batchSize(12).bypassDocumentValidation(true).collation(Collation.builder().build())
.map(new Function<Document, Document>()
{
@Override
public Document apply(Document t)
{
t.put("hello", "world");
return t;
}
}).first();
Assert.assertNotNull(first);
}
项目:ibm-performance-monitor
文件:ProfiledMongoClientTest.java
public MongoIterable<String> createMap()
{
return coll.find(Filters.eq("name", "Alto")).map(new Function<Document, String>()
{
@Override
public String apply(Document t)
{
return t.getString("name");
}
});
}
项目:sam
文件:SearchResource.java
private <T> PaginatedCollection<T> wildcardSearch(Bson filter, String collection, Function<Document,T> mapper) {
return RestHelper.paginatedList(
database.getCollection(collection)
.find(filter)
.map(mapper)
);
}
项目:sam
文件:SearchResource.java
private <T> PaginatedCollection<T> textSearch(String query, String collection, Function<Document,T> mapper) {
return RestHelper.paginatedList(
database.getCollection(collection)
.find(Filters.text(query))
.projection(Projections.metaTextScore("score"))
.sort(Sorts.metaTextScore("score"))
.map(mapper)
);
}
项目:epcis
文件:ChronoGraph.java
/**
* Return an iterable to all the vertices in the graph. If this is not possible
* for the implementation, then an UnsupportedOperationException can be thrown.
*
* @return an iterable reference to all vertices in the graph
*/
public Iterable<ChronoVertex> getChronoVertices() {
HashSet<String> idSet = new HashSet<String>();
Function<BsonString, String> mapper = new Function<BsonString, String>() {
@Override
public String apply(BsonString val) {
return val.getValue();
}
};
HashSet<String> outV = new HashSet<String>();
edges.distinct(Tokens.OUT_VERTEX, BsonString.class)
.filter(new BsonDocument(Tokens.OUT_VERTEX, new BsonDocument(Tokens.FC.$ne.toString(), new BsonNull())))
.map(mapper).into(outV);
idSet.addAll(outV);
HashSet<String> inV = new HashSet<String>();
edges.distinct(Tokens.IN_VERTEX, BsonString.class)
.filter(new BsonDocument(Tokens.IN_VERTEX, new BsonDocument(Tokens.FC.$ne.toString(), new BsonNull())))
.map(mapper).into(inV);
idSet.addAll(inV);
MongoCursor<BsonDocument> vi = vertices.find(Tokens.FLT_VERTEX_FIELD_NOT_INCLUDED)
.projection(Tokens.PRJ_ONLY_ID).iterator();
while (vi.hasNext()) {
BsonDocument d = vi.next();
idSet.add(d.getString(Tokens.ID).getValue());
}
HashSet<String> vertex = new HashSet<String>();
vertices.distinct(Tokens.VERTEX, BsonString.class)
.filter(new BsonDocument(Tokens.VERTEX, new BsonDocument(Tokens.FC.$ne.toString(), new BsonNull())))
.map(mapper).into(vertex);
idSet.addAll(vertex);
return idSet.parallelStream().map(s -> new ChronoVertex(s, this)).collect(Collectors.toSet());
}
项目:epcis
文件:ChronoGraph.java
/**
* Return an iterable to all the vertices in the graph. If this is not possible
* for the implementation, then an UnsupportedOperationException can be thrown.
*
* @return an iterable reference to all vertices in the graph
*/
public Set<ChronoVertex> getChronoVertexSet() {
HashSet<String> idSet = new HashSet<String>();
Function<BsonDocument, String> mapper = new Function<BsonDocument, String>() {
@Override
public String apply(BsonDocument val) {
return val.getString(Tokens.ID).getValue();
}
};
HashSet<String> outV = new HashSet<String>();
ArrayList<BsonDocument> outVQuery = new ArrayList<BsonDocument>();
outVQuery.add(new BsonDocument("$group", new BsonDocument(Tokens.ID, new BsonString("$" + Tokens.OUT_VERTEX))));
edges.aggregate(outVQuery).map(mapper).into(outV);
HashSet<String> inV = new HashSet<String>();
ArrayList<BsonDocument> inVQuery = new ArrayList<BsonDocument>();
inVQuery.add(new BsonDocument("$group", new BsonDocument(Tokens.ID, new BsonString("$" + Tokens.IN_VERTEX))));
edges.aggregate(inVQuery).map(mapper).into(inV);
idSet.addAll(inV);
MongoCursor<BsonDocument> vi = vertices.find(Tokens.FLT_VERTEX_FIELD_NOT_INCLUDED)
.projection(Tokens.PRJ_ONLY_ID).iterator();
while (vi.hasNext()) {
BsonDocument d = vi.next();
idSet.add(d.getString(Tokens.ID).getValue());
}
return idSet.parallelStream().map(s -> new ChronoVertex(s, this)).collect(Collectors.toSet());
}
项目:epcis
文件:ChronoGraph.java
public Set<ChronoVertex> getOutVertexSet() {
Function<BsonDocument, String> mapper = new Function<BsonDocument, String>() {
@Override
public String apply(BsonDocument val) {
return val.getString(Tokens.ID).getValue();
}
};
HashSet<String> outV = new HashSet<String>();
ArrayList<BsonDocument> outVQuery = new ArrayList<BsonDocument>();
outVQuery.add(new BsonDocument("$group", new BsonDocument(Tokens.ID, new BsonString("$" + Tokens.OUT_VERTEX))));
edges.aggregate(outVQuery).map(mapper).into(outV);
return outV.parallelStream().map(s -> new ChronoVertex(s, this)).collect(Collectors.toSet());
}
项目:epcis
文件:ChronoGraph.java
/**
* Return an iterable to all the vertices in the graph. If this is not possible
* for the implementation, then an UnsupportedOperationException can be thrown.
*
* @return an iterable reference to all vertices in the graph
*/
public Stream<ChronoVertex> getChronoVertexStream(boolean isParallel) {
HashSet<String> idSet = new HashSet<String>();
Function<BsonString, String> mapper = new Function<BsonString, String>() {
@Override
public String apply(BsonString val) {
return val.getValue();
}
};
HashSet<String> outV = new HashSet<String>();
edges.distinct(Tokens.OUT_VERTEX, BsonString.class)
.filter(new BsonDocument(Tokens.OUT_VERTEX, new BsonDocument(Tokens.FC.$ne.toString(), new BsonNull())))
.map(mapper).into(outV);
idSet.addAll(outV);
HashSet<String> inV = new HashSet<String>();
edges.distinct(Tokens.IN_VERTEX, BsonString.class)
.filter(new BsonDocument(Tokens.IN_VERTEX, new BsonDocument(Tokens.FC.$ne.toString(), new BsonNull())))
.map(mapper).into(inV);
idSet.addAll(inV);
MongoCursor<BsonDocument> vi = vertices.find(Tokens.FLT_VERTEX_FIELD_NOT_INCLUDED)
.projection(Tokens.PRJ_ONLY_ID).iterator();
while (vi.hasNext()) {
BsonDocument d = vi.next();
idSet.add(d.getString(Tokens.ID).getValue());
}
HashSet<String> vertex = new HashSet<String>();
vertices.distinct(Tokens.VERTEX, BsonString.class)
.filter(new BsonDocument(Tokens.VERTEX, new BsonDocument(Tokens.FC.$ne.toString(), new BsonNull())))
.map(mapper).into(vertex);
idSet.addAll(vertex);
if (isParallel)
return idSet.parallelStream().map(s -> new ChronoVertex(s, this)).collect(Collectors.toSet())
.parallelStream();
else
return idSet.parallelStream().map(s -> new ChronoVertex(s, this)).collect(Collectors.toSet()).stream();
}
项目:epcis
文件:VertexEvent.java
public Set<VertexEvent> getOutVertexEventSet(final AC tt) {
while (true) {
try {
// db.tEdgeEvents.aggregate([{$match:{"_o":"1","_t":{ $lt : ISODate(0)
// }}},{$project:{"_i":1,"_t":1,"_id":0}},{$group:{"_id":"$_i", "_mt": {$min:
// "$_t"}}}])
BsonDocument match = new BsonDocument("$match",
new BsonDocument(Tokens.OUT_VERTEX, new BsonString(vertex.toString())).append(Tokens.TIMESTAMP,
new BsonDocument("$gt", new BsonDateTime(timestamp))));
BsonDocument project = new BsonDocument("$project",
new BsonDocument(Tokens.IN_VERTEX, new BsonBoolean(true))
.append(Tokens.TIMESTAMP, new BsonBoolean(true))
.append(Tokens.ID, new BsonBoolean(false)));
BsonDocument group = new BsonDocument("$group",
new BsonDocument(Tokens.ID, new BsonString("$" + Tokens.IN_VERTEX)).append(Tokens.TIMESTAMP,
new BsonDocument("$min", new BsonString("$" + Tokens.TIMESTAMP))));
ArrayList<BsonDocument> aggregateQuery = new ArrayList<BsonDocument>();
aggregateQuery.add(match);
aggregateQuery.add(project);
aggregateQuery.add(group);
HashSet<VertexEvent> ret = new HashSet<VertexEvent>();
Function<BsonDocument, VertexEvent> mapper = new Function<BsonDocument, VertexEvent>() {
@Override
public VertexEvent apply(BsonDocument d) {
String inV = d.getString(Tokens.ID).getValue();
Long t = d.getDateTime(Tokens.TIMESTAMP).getValue();
return new VertexEvent(graph, new ChronoVertex(inV, graph), t);
}
};
vertex.graph.getEdgeEvents().aggregate(aggregateQuery).map(mapper).into(ret);
return ret;
} catch (MongoCursorNotFoundException e1) {
System.out.println(e1.getErrorMessage());
}
}
}