如何将mongodb函数与mongoimport一起使用



假设我想从命令行使用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不会导入少量可能与您相关的文档。

最新更新