MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Tablica agregacji MongoDB z dwoma polami

Użyj mapy kursora agregacji ( ) metoda zwracająca tablicę identyfikatorów ObjectId w następujący sposób:

var pipeline = [
    {$match: {warehouse_sku: /^1\_/}},
    {$group: { "_id": "$_id" } }
],
list_products = db.getCollection('products')
                  .aggregate(pipeline)
                  .map(function(doc){ return doc._id });

find() map() tutaj również zadziała:

var query = {'warehouse_sku': /^1\_/},
    list_products = db.getCollection('products')
                      .find(query)
                      .map(function(doc){ return doc._id });

AKTUALIZUJ

W pymongo możesz użyć lambda funkcja z funkcją mapy. Ponieważ map oczekuje, że funkcja zostanie przekazana, zdarza się również, że jest to jedno z miejsc, w których często pojawia się lambda:

import re
regx = re.compile("^1\_", re.IGNORECASE)
products_cursor = db.products.find({"warehouse_sku": regx})
list_products = list(map((lambda doc: doc["_id"]), products_cursor))



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Przegląd wielodokumentowych transakcji ACID w MongoDB i jak z nich korzystać

  2. Podstawowe zapytania między datami $gte, $lte itp

  3. Jak możemy zadać zapytanie o osadzone dokumenty za pomocą sterownika java?

  4. Tablica aktualizacji wewnątrz dokumentu Mongo nie działa

  5. Jak uzyskać dostęp do atrybutów obiektu odpytywanych z Mongo w Meteor?