Ich erhalte diese Fehlermeldung:
"Unrecognized logical operator: $in"
während diese Abfrage mit:
this.update(
{}, {
$pull: {
words: {
$in:['string', 'string1']
}
}
}, {
multi: true
});
ich innerhalb einer es6 Klasse bin aufrufen, die erweitert Mongo.Collection im Client, alles andere bisher (Einfügen, Entfernen) hat funktioniert und ich ändere die Update-Methode in keiner Weise. Die Sammlung ist ein local collection auf diese Weise erklärt:
WordsList = new WordCollection('words', {connection: null});)
Die Abfrage ist sehr ähnlich wie das Beispiel in der Dokumentation here und eigentlich kann ich den gleichen Fehler zu reproduzieren, während versuchen, dieses Beispiel auf der Konsole als auch neu zu erstellen.
I'm using Meteor 1.4.4.1 with MongoDB 3.2.12
Aus irgendeinem Grund kann ich noch nach unten nicht stecken, kann ich den Fehler zu Mongo Verfolgen Sie die Abfrage-Mapping es zu logischen Operatoren ($ und $ oder) anstelle des Elements (Vergleich Abfrage) Betreiber zusammenzustellen ($ in, $ eq)
Ich glaube nicht, Meteor, diese Art von Update ermöglicht, ohne dass ein bestimmtes Dokument '_id'. Auch funktioniert möglicherweise nicht in Minimongo im Browser-Client, aber das ist gültige Syntax "Server-Seite". Vielleicht sollten Sie eine Servermethode verwenden. –
Nun, das Beispiel in der Dokumentation gibt keine ID weiter, es soll auf alle passenden Dokumente angewendet werden. Auch (vergessen zu erwähnen) ist dies eine clientseitige Sammlung (passiere {verbindung: null} als zweites Argument), werde dies im Beitrag aktualisieren. – lvlzqz
Ich denke, Sie verwechseln Dokumentationsquellen hier. Die MongoDB-Kerndokumentation listet die korrekten Syntaxoptionen für $ pull auf. Dies ist eine gültige Anweisung. Meteor ['.update()'] (https://docs.meteor.com/api/collections.html#Mongo-Collection-update) als implementiert betrachtet "nicht vertrauenswürdigen" Client-Code als nicht gültig, wenn er ein bestimmtes Dokument nicht enthält '_id'. Sofern Sie die Methode nicht speziell abgesichert haben, wäre dies nicht erlaubt. Ich denke, dass Sie dies wirklich als eine [Server-Methode] ausführen müssen (https://guide.meteor.com/methods.html) –