MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Може ли драйверът на meteor mongo да обработва $each и $position оператори?

Ако създадете колекция Meteor с new Mongo.Collection('col') получавате обратно екземпляр на Minimongo, който не е собственият Node MongoDriver, нали?

Така че някои методи просто не работят или не се поддържат напълно.. като collection.aggregate

Но можете лесно да получите достъп до родния драйвер чрез Col.rawCollection() и изпълнете вашата заявка директно на естествения екземпляр. Собственият екземпляр е достъпен само на сървъра, разбира се .

Така че, за да направите това, което искате, имате няколко начина, например можете първо да вземете масива, да го подредите както искате и

$set: {my_array: sortedArray } Лично аз бих предпочел този начин, защото трябва да извършите само една операция за актуализиране вместо две ($pull &$push at $position )

Но ако искате да го направите по начина $push at $position.. просто го направете с основния драйвер

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

Забележка:Имате нужда от Meteor.wrapAsync поради стила на синхронизиране на Meteor, можете да го направите и без него. Collection.rawCollection().update(...)




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Не може да се десериализира PyMongo ObjectId от JSON

  2. Заявка за масив във вграден списък

  3. Поддокумент за актуализиране на Mongoose, ако съществува

  4. Как да използваме MongoDB агрегиране за операции с набори с общо предназначение (обединение, пресичане, разлика)

  5. bson.D срещу bson.M за заявки за намиране