假设我想从命令行使用mongoimport插入一个包含日期对象的对象。
echo "{"int_key": 1, "date_key": new Date("2022-12-27")}" | mongoimport --host "192.168.60.10" --db example_db --collection example_collection
将不起作用,因为我尝试插入的对象不是有效的JSON形式。我之所以要使用mongoimport,是因为有一个由大量对象组成的数组,我想一次性保存这些对象。如果我尝试使用mongo
命令,则--eval
的参数长度太长。例如,
mongo --host "192.168.60.10" --eval "db=db.getSiblingDB("example_db");db.getCollection("example_collection").insert([{"int_key": 1, "date_key": new Date("2022-12-27")}])"
但是CCD_ 3内部的阵列具有非常多的对象。你能提出解决办法吗?我想我可以使用mongoimport
来读取通过stdin或文件放入数组中的所有对象。使用json数组的选项不允许使用mongo --eval
中的insert()
插入的对象数组。
您必须使用此
echo "{"int_key": 1, "date_key": {"$date": "2022-12-27"}}"
可能需要:
echo "{"int_key": 1, "date_key": {"$date": "2022-12-27T00:00:00Z"}}"
有关其他数据类型,请参阅MongoDB Extended JSON(v2)
我以同样的方式使用mongoimport
,每天插入大约60亿个文档,它非常快速可靠。
根据您的使用方式,mongoimport不会导入少量可能与您相关的文档。