sql >> Databáze >  >> NoSQL >> MongoDB

MongoDB Aggregate Array se dvěma poli

Použijte mapu agregačního kurzoru ( ) metoda k vrácení pole ObjectId takto:

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

find() kurzorová map() by fungovalo i zde:

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

AKTUALIZACE

V pymongo můžete použít lambda funkce s funkcí mapy. Protože mapa očekává předání funkce, je to také jedno z míst, kde se lambda běžně objevuje:

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. Jak vypočítám vzdálenost trasy mezi mnoha body GeoJSON v MongoDB?

  2. Jak mohu povolit libmongoc ssl v PHP 7 pro připojení Mongodb?

  3. @EnableMongoAuditing pro MongoDB na Cloud Foundry / mongolab

  4. Mongoose $lookup kde localField je řetězec ObjectId v ForeignField