Utilizarea conductelor de căutare cu Java asincronă driver

voturi
0

Legare pentru a obține o căutare de lucru cu driverul async java să se alăture 2 colecții. Dar eu nu pot da seama sintaxa corectă pentru utilizare ca eu nu pot găsi nici o documentație privind ceea ce sintaxa folosește versiunea Let (variabile) a comenzii de căutare $ este de a lucra în mod corespunzător.

Iată ce folosind (și nu este găsit nici un meci):

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

Practic $_idîn info_collectioneste egal cu object_idDIRECTIVEI values_collection.

Am nevoie pentru a crea variabila diferit sau meciul este egal? Dacă am folosi versiunea cheie externă a metodei de căutare funcționează, dar am nevoie să folosesc conducte ca am alte lucruri de adăugat la ea.

Există exemple folosind driver-ul de sincronizare, dar nu și cu șoferul async.

Întrebat 13/01/2020 la 23:55
sursa de către utilizator
În alte limbi...                            


1 răspunsuri

voturi
0

Răspunsul dat seama, cred cu agregate pe care nu se pot utiliza funcțiile scurte helper de mână, dar trebuie să treacă în parametri ca documente.

Aceasta include parametrul suplimentar egal de ce nu am putut folosi altă funcție de căutare.

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))));
Publicat 14/01/2020 la 20:37
sursa de către utilizator

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