Bruke oppslags rørledninger med Java Async Driver

stemmer
0

Knytte til å få et oppslag arbeids med async java sjåføren til å bli 2 samlinger. Men jeg kan ikke finne ut riktig syntaks til bruk som jeg ikke kan finne noen dokumentasjon på hva syntaksen bruker Let (variabler) versjon av $ oppslag kommandoen til å fungere ordentlig.

Her er hva du bruker (og det ikke finne noen kamper):

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

I utgangspunktet er $_idi den info_collectioner lik den object_idav den values_collection.

Trenger jeg å lage den Variable annerledes eller kampen er lik? Hvis jeg bruker den utenlandske nøkkelen versjon av oppslags metoden det fungerer, men jeg trenger å bruke rørledninger som jeg har andre ting å legge til det.

Det finnes eksempler som bruker sync driveren, men ikke med async driver.

Publisert på 13/01/2020 klokken 21:55
kilden bruker
På andre språk...                            


1 svar

stemmer
0

Funnet ut svaret, jeg antar med aggregater du ikke kan bruke de korte hjelpefunksjoner hånd, men må passere i parametre som dokumenter.

Dette inkluderer ekstra lik parameter for hvorfor jeg ikke kunne bruke den andre oppslag funksjon.

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))));
Svarte 14/01/2020 kl. 18:37
kilden bruker

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