Pomocí vyhledávací potrubí s Java asynchronní Driver

hlasů
0

Vázání získat vyhledávání Práce s řidičem asynchronní java vstoupit 2 kolekce. Ale nemohu přijít na správnou syntaxi pro použití jako nemohu najít žádnou dokumentaci o tom, co je syntaxe používá Let (proměnné) verzi příkazu $ vyhledávání je, aby fungoval správně.

Zde je to, co používáte (a to nenajde žádnou shodu):

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))));

V podstatě $_idv info_collectionje roven object_idtoho values_collection.

Musím vytvořit proměnné odlišně nebo zápas se rovná? Mám-li použít cizího klíče verze metody vyhledávání funguje to, ale musím použít potrubí, jak mám jiné věci, aby k němu přidám.

Existují příklady využívající synchronizační ovladač, ale ne s řidičem asynchronní.

Položena 13/01/2020 v 23:55
zdroj uživatelem
V jiných jazycích...                            


1 odpovědí

hlasů
0

Přišel na to odpověď, myslím, že s agregáty nelze použít krátké ruční pomocné funkce, ale musí předat parametry jako dokumenty.

Patří sem extra rovné parametr, proč jsem nemohl použít jinou funkci vyhledávání.

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))));
Odpovězeno 14/01/2020 v 20:37
zdroj uživatelem

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