Verwenden Sie die map()
Methode, um ein Array von ObjectIds wie folgt zurückzugeben:
var pipeline = [
{$match: {warehouse_sku: /^1\_/}},
{$group: { "_id": "$_id" } }
],
list_products = db.getCollection('products')
.aggregate(pipeline)
.map(function(doc){ return doc._id });
Der find()
Cursors map()
würde auch hier funktionieren:
var query = {'warehouse_sku': /^1\_/},
list_products = db.getCollection('products')
.find(query)
.map(function(doc){ return doc._id });
AKTUALISIEREN
In Pymongo könnten Sie ein Lambda verwenden Funktion mit der Kartenfunktion. Da map erwartet, dass eine Funktion übergeben wird, ist es auch einer der Orte, an denen Lambda routinemäßig erscheint:
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))