Io lavoro su un'applicazione meteorica con il bundle di meteoriti aggiornato. Voglio riposizionare un elemento all'interno di un array di documenti mongo. Per ottenere ciò, I $pull
dall'array e quindi $push
in una posizione specifica index
in base a mongoDB documentation.
MyCollection.update({_id: my_doc.id},
{
$push:
{
my_array:
{
$each:[my_item.id],
$position:index
}
}
}
)
Meteor/Mongo getta il seguente errore:
update failed: MongoError: Can't canonicalize query: BadValue unknown top level operator: $each
ho implementato questo lato client. Ho pensato che non funzionasse a causa delle limitazioni di minimongo.
Ho scritto un metodo per gestire questo lato server, ma alla fine ho lo stesso errore.
Cosa c'è di sbagliato in questa richiesta, può la meteora gestire l'operatore $ ogni?
EDIT: Ho cercato di inserire direttamente nel robomongo, e ha funzionato. Versione Mongo, quando si digita db.version()
ritorna 2.6.7
* EDIT2: Non mi aspettavo così non ho controllato in precedenza: l'aggiornamento funziona, sia con la $pull
e la $push
. Tuttavia, anche se i dati vengono effettivamente aggiornati, viene comunque visualizzato l'errore.
* EDIT: Ecco alcuni dati esempio:
{
"_id" : "oSNrpgAAu8BuznvD6",
"name" : "tynhjderjye",
"description" : "",
"notes" : "",
"display_notes" : false,
"keywords" : [
""
],
"owner" : "mA5Y7LBCoRyeSDkaG",
"createdAt" : ISODate("2015-10-27T13:59:06.083Z"),
"createdBy" : "C3i9oj4eapyttHZj6",
"contributors" : [
"C3i9oj4eapyttHZj6"
],
"medias" : [
"TcFqermNY4y5cjBG3",
"dbkNN2rxXJXth8urw",
"jML4JKkRoKxx8sLwu",
"LEWYsnPrXRSH6MPkX"
],
"modifiedAt" : ISODate("2015-11-17T09:35:50.303Z"),
"modifiedBy" : "C3i9oj4eapyttHZj6",
"chunks" : [
"qCCHKJDbdTLEFR5Yt",
"ySiM7dcxvduEM2npj",
"5q46vqrmYttscitiK"
],
"trashed" : ISODate("2015-11-17T09:35:50.303Z")
}
chunks
è la matrice my_array
dove mi tirare e spingere i my_item.id
nella posizione index
Qual è la versione del server MongoDB? – JohnnyHK
Prova ad eseguire lo stesso comando nel client di shell 'mongo'. –
@DmytroShevchenko Lo stesso comando funziona bene in RoboMongo (equivalente al client shell suppongo). – Billybobbonnet