Si crea una colección Meteor con new Mongo.Collection('col')
obtienes una instancia de Minimongo que no es el Node MongoDriver nativo, ¿verdad?
Entonces, 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 realice 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, revertirla como quiera y
$set: {my_array: sortedArray }
Personalmente, preferiría esta forma porque solo necesita realizar una operación de actualización en lugar de dos ($pull
&$push at $position
)
Pero si quieres hacerlo de la manera $push at $position... simplemente hazlo con el controlador nativo
var col = Collection.rawCollection();
var result = Meteor.wrapAsync(col.update.bind(col)(
/* update query goes here */
);
Nota:necesita Meteor.wrapAsync debido al estilo de sincronización de Meteor, también puede hacerlo sin él. Colección.rawCollection().actualizar(...)