sql >> Base de Datos >  >> NoSQL >> MongoDB

¿Puede el controlador de meteorito mongo manejar operadores de $cada uno y $posición?

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(...)