嗨,提前感谢您的帮助。我无法在其他帖子上找到这个问题或解决方案,如果我错过了,请告诉我。
我的问题是,在导出并导入另一个集合后,我看到一些字段的 $type 值发生了变化。我在环境 A 的集合中有数据,我想将其导出并导入到不同的环境 B。查看环境 A 中的源数据时,所有类型的字段都是正确的 64 位整数($type 18 -来自文档)。但是,一旦将数据导入到环境 B 中,720 个文档中的 5 个的 $type 为 16(32 位整数)。
环境 A 的输出:
mongos> db.myCollection.count()
720
mongos> db.myCollection.count({createTime : {$type : 16}})
0
mongos> db.myCollection.count({createTime : {$type : 18}})
720
使用等效命令从环境 A 导出数据:
mongoexport --host my.environment.a.host.com -d myDb -c myCollection -o outputFile.json
使用等效命令将数据导入环境 B:
mongoimport --host my.environment.b.host.com -d myDb -c myCollection --file outputFile.json
查看环境 B 中的数据,我看到以下计数/类型:
db.plaAdGroupDoc.count()
0
db.productDoc.count({createTime : {$type : 16}})
5
db.productDoc.count({createTime : {$type : 18}})
715
db.productDoc.count( )
720
我不清楚为什么该字段的类型从导入中发生了变化。而且,为什么只有一小部分字段发生了变化。任何见解将不胜感激。
谢谢!
编辑:已解决(无法在 8 小时内回答问题) 再看一下,似乎导入为 32 位整数($type 16)的 5 个整数的值为 0,而不是大值。这似乎是他们默认使用整数而不是 64 位整数的原因。问题已解决。
希望这对其他人有帮助!