mongodump 1 单个文档失败,因为 ObjectId
mongodump 1 single document fails because ObjectId
我正在尝试为 mongo 集合中的 1 个文档创建 mongo 转储。
当我在 windows 命令行上执行此操作时:
mongodump /host:x.x.x.x /port:27017 /username:my_user /password:my_pass -d my_db -o C:\fsdump -c "fs.files" -q '{_id: ObjectId("28ad7bkjia3e927d690385ec")}'
我收到这个错误:
positional arguments not allowed: [ObjectId(28ad7bkjia3e927d690385ec)}']
当我将 mongo 中的 id 从 ObjectId("28ad7bkjia3e927d690385ec")
更改为 "28ad7bkjia3e927d690385ec"
时,当我像这样转储时:
mongodump /host:x.x.x.x /port:27017 /username:my_user /password:my_pass -d my_db -o C:\fsdump -c "fs.files" -q '{_id: "28ad7bkjia3e927d690385ec"}'
然后它按预期工作
所以我的问题是如何使用 mongodump 并对特定的 ObjectId 进行过滤?
或者是否有另一种方法可以为集合中的文档子集(而不是整个集合)创建导出?
ObjectId("28ad7bkjia3e927d690385ec")
是对 ObjectId 构造函数的 javascript 函数调用。这是无效的 JSON。 "28ad7bkjia3e927d690385ec"
也不是有效的 ObjectId。
Mongodump 使用 JSON 的扩展形式,它有一个标记来指示字段类型,因此您可以像这样指定一个 ObjectId:
-q '{"_id":{"$oid":"5f76b7cc0311bd14f80a3dec"}}'
我正在尝试为 mongo 集合中的 1 个文档创建 mongo 转储。
当我在 windows 命令行上执行此操作时:
mongodump /host:x.x.x.x /port:27017 /username:my_user /password:my_pass -d my_db -o C:\fsdump -c "fs.files" -q '{_id: ObjectId("28ad7bkjia3e927d690385ec")}'
我收到这个错误:
positional arguments not allowed: [ObjectId(28ad7bkjia3e927d690385ec)}']
当我将 mongo 中的 id 从 ObjectId("28ad7bkjia3e927d690385ec")
更改为 "28ad7bkjia3e927d690385ec"
时,当我像这样转储时:
mongodump /host:x.x.x.x /port:27017 /username:my_user /password:my_pass -d my_db -o C:\fsdump -c "fs.files" -q '{_id: "28ad7bkjia3e927d690385ec"}'
然后它按预期工作
所以我的问题是如何使用 mongodump 并对特定的 ObjectId 进行过滤?
或者是否有另一种方法可以为集合中的文档子集(而不是整个集合)创建导出?
ObjectId("28ad7bkjia3e927d690385ec")
是对 ObjectId 构造函数的 javascript 函数调用。这是无效的 JSON。 "28ad7bkjia3e927d690385ec"
也不是有效的 ObjectId。
Mongodump 使用 JSON 的扩展形式,它有一个标记来指示字段类型,因此您可以像这样指定一个 ObjectId:
-q '{"_id":{"$oid":"5f76b7cc0311bd14f80a3dec"}}'