Ich arbeite mit NodeJS auf Google App Engine mit der Datastore-Datenbank.Google Datastore kombinieren (Vereinigung) mehrere Sätze von Entity-Ergebnissen, um OR-Bedingung zu erreichen
Aufgrund der Tatsache, dass Datastore does not have support the OR operator, muss ich mehrere Abfragen ausführen und die Ergebnisse kombinieren.
Ich plane, mehrere Abfragen auszuführen und dann die Ergebnisse in einem einzigen Array von Entitätsobjekten zu kombinieren. Ich habe eine einzige Abfrage, die bereits funktioniert.
Frage: Was ist eine recht effiziente Methode zum Kombinieren von zwei (oder mehr) Entitätsgruppen, die von Datastore zurückgegeben werden, einschließlich Deduplizierung? Ich glaube, das wäre eine "Union" -Operation im Sinne der Mengenlehre.
Hier ist die grundlegende Abfrage Gliederung, die mehrmals mit einigen verschiedenen Filtern ausgeführt werden, um die erforderlichen OR-Bedingungen zu erreichen.
//Set requester username
const requester = req.user.userName;
//Create datastore query on Transfer Request kind table
const task_history = datastore.createQuery('Task');
//Set query conditions
task_history.filter('requester', requester);
//Run datastore query
datastore.runQuery(task_history, function(err, entities) {
if(err) {
console.log('Task History JSON unable to return data results. Error message: ', err);
return;
//If query works and returns any entities
} else if (entities[0]) {
//Else if query works but does not return any entities return empty JSON response
res.json(entities); //HOW TO COMBINE (UNION) MULTIPLE SETS OF ENTITIES EFFICIENTLY?
return;
}
});
Hier ist mein Original-Beitrag: Google Datastore filter with OR condition