python - MongoDB - 在聚合中使用 numericOrdering do mongo slow
问题描述
我有这个问题,当我正常运行查询时,一切都 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
。
我希望有人能解释我在这里做错了什么?
解决方案
推荐阅读
- oauth - OAuth client_id 和 client_secret
- c - AVR GCC (ATTiny1614) 上的内联汇编优化问题
- python - 在python中创建一个新的INI文件
- kubernetes - 是否可以在同一部署中使用 Http 和 Command livenessProbe?
- javascript - 结合 2 个 JS 真的很麻烦
- android-studio - 两个recyclerview不能在一个布局中滚动
- discord - 使用检查等待消息 on_member_join (discord.py) | 解决了
- javascript - 如何从在 javascript 中运行函数的按钮启动模式?
- python - Python datetime 仍然给出“TypeError:仅对 DatetimeIndex、TimedeltaIndex 或 PeriodIndex 有效,但获得了 'Index' 的实例”
- c# - 使用反射从静态表达式方法创建表达式树