Python 按集合中的订单号检索mongodb文档
我有一个mongodb集合,看起来像这样Python 按集合中的订单号检索mongodb文档,python,python-3.x,mongodb,pymongo,mongoengine,Python,Python 3.x,Mongodb,Pymongo,Mongoengine,我有一个mongodb集合,看起来像这样 [ { "Code": "018906", "X": "0.12", }, { "Code": "018907", "X": "0.18", }, { "Code": "018910", "X": "0.24", }, { "Code": "018916", "X": "0.75", }, ] 假设我想检索第三个文档的code字段。我想使用类似这样的pyth
[
{
"Code": "018906",
"X": "0.12",
},
{
"Code": "018907",
"X": "0.18",
},
{
"Code": "018910",
"X": "0.24",
},
{
"Code": "018916",
"X": "0.75",
},
]
假设我想检索第三个文档的code
字段。我想使用类似这样的python函数按顺序检索(order\u no=3,field='code')
,它将返回“018910”
<代码>订单号指向集合中的文档位置
code
按升序排列
我愿意使用任何python mongodb库。欢迎使用pymongo、orm等mongoengine解决方案
我使用的是python 3.7、mongodb v4.2,假设存储的数据顺序正确,使用pymongo的惰性解决方案如下:
从pymongo导入MongoClient
client=MongoClient()
db=client.database
coll=db.coll
def按订单检索(订单号,field=“Code”):
对于i,在enumerate(coll.find())中发布:
如果i+1==订单号:
返回岗位[现场]
更快的解决方案是让记录保存一个“order\u no”字段,您可以直接查询它
例如:
coll.find_one({“order_no”:order_no})
您可以将订单号设置为递增索引,可使用以下代码进行设置:
result=db.collection.create_index([('order_no',pymongo.ASCENDING)],unique=True)
假设存储的数据顺序正确,使用pymongo的惰性解决方案如下:
从pymongo导入MongoClient
client=MongoClient()
db=client.database
coll=db.coll
def按订单检索(订单号,field=“Code”):
对于i,在enumerate(coll.find())中发布:
如果i+1==订单号:
返回岗位[现场]
更快的解决方案是让记录保存一个“order\u no”字段,您可以直接查询它
例如:
coll.find_one({“order_no”:order_no})
您可以将订单号设置为递增索引,可使用以下代码进行设置:
result=db.collection.create_index([('order_no',pymongo.ASCENDING)],unique=True)
谢谢您的回答。测试工作,虽然有点慢。我想你的建议是使用订单号作为递增索引,这对于可接受的速度是必要的。谢谢你的回答。测试工作,虽然有点慢。我想你的建议是使用订单号作为递增索引,这对于可接受的速度是必要的。