一尘不染

将json文件导入mongo的正确方法

json

我一直在尝试对导入的某些数据使用mongo,但是我无法在我的文档描述中正确使用它。

这是我使用mongoimport导入的.json的示例:https
://gist.github.com/2917854

mongoimport -d test -c example data.json

我注意到,尽管为每个商店都创建了一个对象,但所有文档仍被导入到一个唯一的对象中。

这就是为什么当我尝试寻找商店或任何我想查询的东西时,所有文档都被退回的原因。

db.example.find({"shops.name":"x"})

我希望能够查询数据库以使用点表示法通过id获得产品,类似于:

db.example.find({"shops.name":"x","categories.type":"shirts","clothes.id":"1"}

问题在于所有文档都像单个对象一样被导入。问题是:我该如何
导入对象以获得所需的结果?


阅读 293

收藏
2020-07-27

共1个答案

一尘不染

文件注意:

该实用程序采用一个文件,每行包含1个JSON / CSV / TSV字符串,并将其插入。

在您正在使用的结构中-假设要点上的错误已修复-您实际上是在仅导入一个shops字段的文档。

将数据分解成单独的shop文档后,使用类似的东西(shop是集合名称,比使用有意义example)进行导入:

mongoimport -d test -c shops data.json

然后您可以像这样查询:

db.shops.find({"name":x,"categories.type":"shirts"})
2020-07-27