sql >> Databasteknik >  >> NoSQL >> MongoDB

Kan meteor mongo förare hantera $each och $position operatorer?

Om du skapar en Meteor Collection med new Mongo.Collection('col') du får tillbaka en Minimongo-instans som inte är den ursprungliga Node MongoDriver, eller hur?

Så vissa metoder fungerar helt enkelt inte eller stöds inte fullt ut... som collection.aggregate

Men du kan enkelt komma åt den inbyggda drivrutinen via Col.rawCollection() och utför din fråga direkt på den ursprungliga instansen. Den inbyggda instansen är naturligtvis bara tillgänglig på servern .

Så för att göra vad du vill har du flera sätt, till exempel kan du först ta arrayen, använda den som du vill och

$set: {my_array: sortedArray } Personligen skulle jag föredra detta sätt eftersom du bara behöver göra en uppdatering istället för två ($pull &$push at $position )

Men om du vill göra det på $push på $position sätt.. gör det bara med den inbyggda drivrutinen

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

Obs:Du behöver Meteor.wrapAsync på grund av Meteor-synkroniseringsstilen, du kan också göra det utan det. Collection.rawCollection().update(...)




  1. Hur lagrar jag frågeutdata i temp db?

  2. Arkitektur för Redis cache &Mongo för uthållighet

  3. Big Data Processing Engines – Vilken ska jag använda?:Del 1

  4. Stripe:Måste ange källa eller kund