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

техники за съхраняване на библиотеки в system.js на mongoDB

Всяка заявка, използваща JS, може да използва повторно или да получи чисто нов JS контекст, върху който се зареждат съхранени JS обекти. За да направите това, което искате, имате нужда от едно от следните:

  1. mongod за автоматично стартиране на съхранения код при инсталирането му
  2. mapreduce да има init метод

Първата определено е по-интересната функция. Оказва се, че сборката на mongodb v8 го прави автоматично (но не се поддържа официално), но не и официалната компилация на spidermonkey.

Кажете, че имате код на магазин като:

db.system.js.save({ _id: "mylib", value: "myprint = function() { print('installed'); return 'installed';" }

Тогава във v8 можете да използвате myprint() свободно във вашия код, но със SM ще трябва да извикате mylib() изрично.

Като заобиколно решение можете да създадете друг метод:

db.system.js.save({ _id: "installLib", value: "if (!libLoaded) mylib(); libLoaded = true;" }

И го извикайте от вашата функция map().

Създаден билет, за да се стандартизират двигателите и да се позволи автоматично изпълнение:https://jira.mongodb.org /browse/SERVER-4450




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Добавяне на набор от вторични реплики в същата машина?

  2. Rails Mongoid не успява да се удостовери - неуспешно с грешка 13:не е оторизиран за заявка в my_db.my_collection

  3. Свързване с MongoDB Atlas с помощта на Golang mgo:Постоянен няма достъпен сървър за набор от реплика

  4. Агрегиране на MongoDB - $group по дата, дори и да не съществува

  5. Грешка при свързване на MongoDB Atlas не успя да се свърже със сървъра...