我有这个问题,当我运行我的查询正常时,一切都工作100%完美,但当我尝试添加numericOrdering
时,它不会。
aggregation = [
{'$match': {'store': 'fourcom', 'closed': 0}},
{'$lookup': {
'from': 'ordre_open',
'localField': 'reference_number',
'foreignField': 'order_number',
'as': 'ordre_open'
}},
{'$lookup': {
'from': 'ordre_backend_open',
'localField': 'reference_number',
'foreignField': 'ordre-id',
'as': 'ordre_backend'
}},
{'$project': {
'_id': 1,
'store': 1,
'order_number': 1,
'document_number': 1,
'reference_number': 1,
'document_date': 1,
'invoice_group': 1,
'account': 1,
'name': 1,
'our_ref': 1,
'your_ref': 1,
'payment': 1,
'vat': 1,
'total_price': 1,
'currency': 1,
'department': 1,
'closed': 1,
'deleted': 1,
'arch': 1,
'locations': 1,
'lines.price': 1,
'lines.qty': 1,
'ordre_open._id': 1,
'ordre_open.order_number': 1,
'ordre_open.closed': 1,
'ordre_open.deleted': 1,
'ordre_open.type': 1,
'ordre_open.arch': 1,
'ordre_open.fcomputer_synced': 1,
'ordre_backend.ordre-id': 1,
'ordre_backend.error': 1,
'ordre_backend.done': 1,
'ordre_backend.cancel': 1
}},
{'$sort': {'order_number': 1}},
{'$skip': 0},
{'$limit': 1000}
]
mongodb_limit = 1000
resualt = db.command('aggregate', 'ordre_purchase_open', pipeline=aggregation, explain=False, cursor={
'batchSize': mongodb_limit
})
但是当我决定像人类一样排序并添加
collation={
'numericOrdering': True,
'locale': "da"
}
它完全错了,我的查询失败了,不会像我期望的那样工作。我之前很久都使用过numericOrdering
,但这次是db.command
中第一次使用aggregate
。
我希望有人可以解释我在这里做错了什么?