Page MenuHomeSealhub

Przygotowanie interfejsu Query do optymalizacji zapytań
Closed, ResolvedPublic2 Points

Description

Rozszerzenie interfejsu Query tak, aby ułatwić optymalizację zapytań. Lookupy dostają swoje ID, nie ma możliwości wybrania pola "as". Matche odnoszą się do lookupów po ich id.

Interfejs wygląda następująco:

const query = new Query("books");

const author_lookup_id = query.lookup({
	from: "authors",
	localField: "body.author",
	foreignField: "sealious_id",
});

query.match({
	lookups: { [author_lookup_id]: { "body.name": "Mickiewicz" } },
});
  • Klasa wie, które $matche polegają na których $lookupach śledząc ich id.
  • Każde id lookupa jest generowane na podstawie jego zawartości, z pominięciem pola as. Można odtworzyć wszystkie szczegóły lookupa na podstawie jego id.
  • Klasa rozbija złożone $match-e na prostsze, aby stworzyć nowe okazje do optymalizacji zapytania:
query.match({
	"body.year": 1834,
	lookups: { [author_lookup_id]: { "body.name": "Mickiewicz" } },
});

staje się w wewnętrznej reprezentacji czymś tożsamym z:

[
	{ $match: { "body.year": 1834 } },
	{
		$match: { lookups: { [author_lookup_id]: { "body.name": "Mickiewicz" } } },
	},
];

Revisions and Commits

Event Timeline

kuba-orlik created this task.Mar 12 2018, 14:50
kuba-orlik shifted this object from the Restricted Space space to the S5 Publiczna space.
kuba-orlik changed the visibility from "All Users" to "Public (No Login Required)".
kuba-orlik renamed this task from Interfejs "Query" to Przygotowanie interfejsu Query do optymalizacji zapytań.Mar 13 2018, 09:29
kuba-orlik updated the task description. (Show Details)
kuba-orlik triaged this task as Very High priority.Mar 26 2018, 21:40
kuba-orlik moved this task from Restricted Project Column to Restricted Project Column on the Unknown Object (Project) board.Mar 27 2018, 16:07
kuba-orlik edited projects, added Unknown Object (Project); removed Unknown Object (Project).
kuba-orlik changed the task status from New to Review.Mar 30 2018, 16:33
kuba-orlik lowered the priority of this task from Very High to High.Apr 29 2018, 09:23
piotr-ptaszynski added a subtask: Unknown Object (Maniphest Task).May 9 2018, 17:55
piotr-ptaszynski removed a subtask: Unknown Object (Maniphest Task).
piotr-ptaszynski added a parent task: Unknown Object (Maniphest Task).May 9 2018, 17:57
piotr-ptaszynski closed this task as Resolved.Jul 18 2018, 18:57
kuba-orlik mentioned this in Unknown Object (Maniphest Task).Jul 23 2018, 11:45