update tutorial react developers collection apps mongodb meteor minimongo

mongodb - react - meteor tutorial



¿Puede el controlador de meteor mongo manejar a cada uno y $ a los operadores de posición? (1)

Si creas una colección Meteor con la new Mongo.Collection(''col'') colección new Mongo.Collection(''col'') , recuperas una instancia de Minimongo que no es el Node MongoDriver nativo, ¿verdad?

Así que algunos métodos simplemente no funcionan o no son totalmente compatibles .. como collection.aggregate

Pero puede acceder fácilmente al controlador nativo a través de Col.rawCollection() y realizar su consulta directamente en la instancia nativa. La instancia nativa solo es accesible en el servidor, por supuesto .

Entonces, para hacer lo que quiere, tiene varias formas, por ejemplo, primero puede tomar la matriz, colocarla como desee y

$set: {my_array: sortedArray } Personalmente preferiría de esta manera porque solo necesita hacer una operación de actualización en lugar de dos ( $pull & $push at $position )

Pero si quieres hacerlo con $ push en $ posición, hazlo con el controlador nativo

var col = Collection.rawCollection(); var result = Meteor.wrapAsync(col.update.bind(col)( /* update query goes here */ );

Nota: Necesita el Meteor.wrapAsync debido al estilo de sincronización de Meteor, también puede hacerlo sin él. Collection.rawCollection (). Update (...)

Trabajo en una aplicación de meteoros con un paquete de meteoritos actualizado. Quiero reposicionar un elemento dentro de una matriz de documentos Mongo. Para lograrlo, lo saco de la matriz y luego lo $push en una posición de index específica index acuerdo con la documentación de mongoDB .

MyCollection.update({_id: my_doc.id}, { $push: { my_array: { $each:[my_item.id], $position:index } } } )

Meteor / Mongo lanza el siguiente error:

actualización fallida: MongoError: no se puede canonicalizar consulta: BadValue operador de nivel superior desconocido: $ cada uno

Primero implementé este lado del cliente. Asumí que no funcionó debido a las limitaciones del minimongo.

Escribí un método para manejar este lado del servidor, pero termino con el mismo error.

¿Qué hay de malo con esta solicitud, puede meteoro manejar los $ cada operador?

EDITAR : Traté de insertarlo directamente en robomongo, y funcionó. Versión de Mongo, al escribir db.version() devuelve 2.6.7

* EDIT2: no lo esperaba así que no lo comprobé antes: la actualización funciona, tanto con el $pull como con el $push . Sin embargo, incluso si los datos se actualizan realmente, todavía recibo el error.

* EDITAR: Aquí hay algunos datos de ejemplo:

{ "_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 es la matriz my_array donde my_item.id y my_item.id en el index posición index