Използвайте map() на курсора за агрегиране )
метод за връщане на масив от ObjectIds, както следва:
var pipeline = [
{$match: {warehouse_sku: /^1\_/}},
{$group: { "_id": "$_id" } }
],
list_products = db.getCollection('products')
.aggregate(pipeline)
.map(function(doc){ return doc._id });
find()
map()на курсора код>
ще работи и тук:
var query = {'warehouse_sku': /^1\_/},
list_products = db.getCollection('products')
.find(query)
.map(function(doc){ return doc._id });
АКТУАЛИЗАЦИЯ
В pymongo можете да използвате ламбда функция с функцията карта. Тъй като map очаква да бъде предадена функция, това също се оказва едно от местата, където ламбда се появява рутинно:
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))