Segítségével keresési csővezetékek Java Async illesztőprogram

szavazat
0

Árukapcsolás, hogy egy keresési dolgozik a aszinkron java vezető csatlakozni 2 gyűjtemények. De nem tudok rájönni a helyes szintaxist felhasználásra nem találok semmilyen dokumentációt, amit a szintaxis a Let (változók) változata a $ keresési parancs megfelelő működéséhez.

Itt van, amit használ (és nem találtunk egyezést):

final List<Bson> lookUppipeline = new ArrayList<>();
final List<Variable<?>> variables = Arrays.asList(new Variable<>(id, $_id));
lookUppipeline.add(match(eq(object_id, $$id)));
final Bson lookup = lookup(values_collection, variables, lookUppipeline, tag_values);
final AggregateIterable<ApiJsonObject> findIter = info_collection.aggregate(Arrays.asList(lookup, skip(0), limit(1_000), project(exclude(EXCLUDES_LIST))));

Alapvetően az $_ida info_collectionegyenlő a object_ida values_collection.

Muszáj, hogy megteremtse a változó eltérően, vagy a mérkőzés egyenlő? Ha valaki használja az idegen kulcs változata a keresési módszer működik, de azt kell használni csővezetékek van más dolgom, hogy adjunk hozzá.

Vannak példák a szinkronizálás vezető, de nem az aszinkron driver.

A kérdést 13/01/2020 21:55
a forrás felhasználó
Más nyelveken...                            


1 válasz

szavazat
0

Kitalálta a választ, azt hiszem, az aggregátumok nem tudja használni a rövid kéz segédfüggvényünk de meg kell felelnie a paraméterek dokumentumok.

Ez magában foglalja az extra egyenlő paraméter, hogy miért nem használja a másik keresési funkciót.

final List<Variable<?>> variables = Arrays.asList(new Variable<>("key", "$_id"));
final List<Bson> pipeline = Arrays.asList(match(expr(new Document("$and",
    Arrays.asList(new Document("$eq", Arrays.asList("$object_id", "$$key")),
                  new Document("$eq", Arrays.asList("$tag", tagId)),
                  new Document("$eq", Arrays.asList("$value", value)))))),
    project(fields(include("tag_values", "_id"))));
final Bson lookup = lookup("values_collection", variables, pipeline, "tag_values");
final AggregateIterable<ApiJsonObject> findIter = info_collection.aggregate(Arrays.asList(lookup, unwind("$tag_values"), skip(0), limit(1_000), project(exclude(EXCLUDES_LIST))));
Válaszolt 14/01/2020 18:37
a forrás felhasználó

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more