sql >> Database >  >> NoSQL >> MongoDB

Mongodb 3.6.0-rc3-arrayfilters werken niet?

Typ je dit in robomongo? Het lijkt erop! Als dat zo is, zal het niet werken. Lees mijn opmerking over het bijwerken van een geneste array met MongoDB, waar ik zeg dat dit niet werkt in een "oudere shell" of iets daarop gebaseerd (welke robomongo een op shell gebaseerde build is) vanwege de manier waarop de shell-helpermethoden momenteel worden geïmplementeerd:

OPMERKING Enigszins ironisch, aangezien dit is gespecificeerd in het argument "opties" voor .update() en net als bij methoden is de syntaxis over het algemeen compatibel met alle recente versies van stuurprogramma's.

Dit geldt echter niet voor de mongo shell, aangezien de manier waarop de methode daar is geïmplementeerd ("ironisch genoeg voor achterwaartse compatibiliteit") de arrayFilters argument wordt niet herkend en verwijderd door een interne methode die de opties parseert om "achterwaartse compatibiliteit" te leveren met eerdere MongoDB-serverversies en een "legacy" .update() API-aanroepsyntaxis.

Dus als je het commando in de mongo . wilt gebruiken shell of andere "shell-gebaseerde" producten (met name Robo 3T) je hebt een laatste versie nodig van de ontwikkelingstak of de productierelease vanaf 3.6 of hoger.

Dus als je wilt "spelen" met de release candidate, gebruik dan ofwel de gebundelde mongo shell met die versie of voer je code gewoon door een standaardstuurprogramma.



  1. Redis CLI toont geen recent opgeslagen sleutel via Laravel

  2. $lookup op ObjectId's in een array

  3. Spring boot caching met redis, key have \xac\xed\x00\x05t\x00\x06

  4. Basisoverwegingen voor het nemen van een MongoDB-back-up