Python 3.x pymongo insert_一个文档结构丢失

Python 3.x pymongo insert_一个文档结构丢失,python-3.x,mongodb,pymongo,pymongo-3.x,Python 3.x,Mongodb,Pymongo,Pymongo 3.x,我有一个Python3应用程序,它将电影信息插入mongodb后端(mongodb Compass),还有一个单独的nodejs应用程序返回它。 这工作正常,但是我清除了数据库并重新运行了应用程序,现在当我插入带有insert\u one的文档时,返回的结构总是丢失: query={ “姓名”:姓名, “年”:年, “格式”:定义, “延伸”:延伸, “文件路径”:文件路径, “MD5Hash”:filehash, “字幕”:字幕, “日期”:日期, “文件大小”:大小 } 结果=db.Movi

我有一个Python3应用程序,它将电影信息插入mongodb后端(mongodb Compass),还有一个单独的nodejs应用程序返回它。 这工作正常,但是我清除了数据库并重新运行了应用程序,现在当我插入带有
insert\u one
的文档时,返回的结构总是丢失:

query={
“姓名”:姓名,
“年”:年,
“格式”:定义,
“延伸”:延伸,
“文件路径”:文件路径,
“MD5Hash”:filehash,
“字幕”:字幕,
“日期”:日期,
“文件大小”:大小
}
结果=db.Movies\u test.insert\u one(查询)



第一次运行返回的数据:

\u id:5b1470da91cb5a2240c57c43
分机:“mkv”
格式:“1080p”
文件路径:“E:\Movies\10 Cloverfield Lane[2016]1080p.mkv”
年份:“2016年”
文件大小:2953397031
MD5Hash:“baf1b857c3f2f4fe6d08161e814a64c2”
日期:2018-06-03 23:51:06.503
字幕:错
名称:“克洛弗菲尔德巷10号”
更新时间:2018-06-04 00:42:51.141

第二次运行返回的数据:

\u id:5b80322f91cb5a05a809a70f
年份:“2016年”
文件大小:2953397031
格式:“1080p”
文件路径:“E:\Movies\10 Cloverfield Lane[2016]1080p.mkv”
日期:2018-08-2417:28:31.067
名称:“克洛弗菲尔德巷10号”
分机:“mkv”
MD5Hash:““
字幕:false

我注意到了一个类似的问题:但是没有解决方案,用户只是切换到使用DocumentDB

我读到
insert
有一个额外的选项
insert(查询,{'ordered':True})
,但这也不会保留数据结构:

\u id:5b80373691cb5a10c42c5906
字幕:错
格式:“1080p”
文件大小:2953397031
分机:“mkv”
日期:2018-08-2417:49:58.160
名称:“克洛弗菲尔德巷10号”
MD5Hash:““
文件路径:“E:\Movies\10 Cloverfield Lane[2016]1080p.mkv”
年份:“2016年”


任何帮助都会很好,理想情况下,我更愿意在原始查询顺序中插入,而不是在输出来自nodejs时处理输出。

为什么文档字段的顺序在这里很重要?@OluwafemiSule如上所述,返回的文档会附加到表中,理想情况下,我希望保持结构不变,这样就不必每次都重建表(正如我所说,当我销毁数据库并重建它时,结构会发生变化)。在添加到表之前,我通过重建查询来解决这个问题,但我不希望这样做。AFAICT,mongo python驱动程序可以预期地返回按编写顺序排列的文档字段。我无法使用pymongo复制这种行为。我认为这个问题可能与节点驱动程序有关。奇怪的是,我的python insert_one查询每次都运行相同的查询,但在mongo compass中生成不同的结构,所以我认为这不是nodeJs的问题。您能否确认,每次运行insert查询、销毁该数据库并重新运行时都会生成相同的结构?因为它不适合我!我试了一下,做了一个决定。不幸的是,我没有得到和你一样的结果。也许你想看看指南针是如何显示结果的。