mongoimport json文件语法

时间:2016-02-02 12:39:44

标签: json mongodb mongoimport

我尝试使用mongoimport命令导入json文档,并尝试了所有可能的方法,但它给出的误差低于此值。 Plz告诉我,我在这里做错了什么。我已经给出了json doc的完整路径。我想要导入包含800多条记录的大文档,但因为它失败了所以目前我的students.json包含简单的一行{name:" Archana"}但即使这样也失败了。

C:\data\db>mongo
2016-02-02T17:48:44.788+0530 I CONTROL  [main] Hotfix KB2731284 or later update is installed, no need to zero-out data
MongoDB shell version: 3.2.1
connecting to: test
> show collections
names
students
> mondoimport -d test -c students students.json
2016-02-02T17:50:21.001+0530 E QUERY    [thread1] SyntaxError: missing ; before statement @(shell):1:15

> mondoimport -d test -c students < students.json
2016-02-02T17:50:25.840+0530 E QUERY    [thread1] SyntaxError: missing ; before statement @(shell):1:15

> mondoimport -d test -c students < file students.json
2016-02-02T17:50:31.233+0530 E QUERY    [thread1] SyntaxError: missing ; before statement @(shell):1:15

> mondoimport -d test -c students < f students.json
2016-02-02T17:50:35.417+0530 E QUERY    [thread1] SyntaxError: missing ; before statement @(shell):1:15

> mondoimport -d test -c students < f C:\data\db\students.json
2016-02-02T17:50:51.658+0530 E QUERY    [thread1] SyntaxError: missing ; before statement @(shell):1:15

> mondoimport -d test -c students < f "C:\data\db\students.json"
2016-02-02T17:50:56.897+0530 E QUERY    [thread1] SyntaxError: missing ; before statement @(shell):1:15

> mondoimport -d test -c students C:\data\db\students.json
2016-02-02T17:51:06.849+0530 E QUERY    [thread1] SyntaxError: missing ; before statement @(shell):1:15

> mondoimport -db test -c students C:\data\db\students.json
2016-02-02T17:54:33.545+0530 E QUERY    [thread1] SyntaxError: missing ; before statement @(shell):1:16

> mondoimport --db test --collection students C:\data\db\students.json
2016-02-02T17:56:24.253+0530 E QUERY    [thread1] SyntaxError: missing ; before statement @(shell):1:14

> mondoimport --db test --collection students --file C:\data\db\students.json
2016-02-02T17:56:33.589+0530 E QUERY    [thread1] SyntaxError: missing ; before statement @(shell):1:14

> mondoimport --db test --collection students --file C:\data\db\students.json --jsonArray
2016-02-02T17:58:21.131+0530 E QUERY    [thread1] SyntaxError: missing ; before statement @(shell):1:14

> mondoimport --db test --collection students C:\data\db\students.json --jsonArray
2016-02-02T17:58:32.650+0530 E QUERY    [thread1] SyntaxError: missing ; before statement @(shell):1:14

13 个答案:

答案 0 :(得分:35)

您可能正在mongo shell下运行此命令。正如您在路径mongo shell(mongo)中看到的那样,在mongod下没有mongoimport命令。因此,为了解决问题,请将cmd提示符导航到该文件,而不使用 a = cars.zip(rate) Foo.find(1).update_attributes(bar: Hash[a]) 在cmd提示符下运行该命令。

答案 1 :(得分:6)

我试图从mongo shell使用mongoimport。所以答案是“mongoimport是不同的实用程序”所以如果你想使用mongoimport然后在使用“mongod”启动mongo服务器后,使用需要启动不同的cmd并转到C:\ Program Files \ MongoDB \ Server \ 3.2 \ bin或它应该在你的路径,然后你需要运行“mongoimport”命令。如果你从“mongo”shell开始使用“mongoimport”,那么它将无效。

答案 2 :(得分:5)

mongoimport是不同的实用程序,因此请使用不同的命令提示符。

答案 3 :(得分:4)

mongoimport command

以给定的方式尝试以下步骤:

步骤1。在新的命令提示符下,cd到mongo的bin目录的位置。 例如:

cd c:\MongoDB\bin

第二步。运行以下命令:

mongoimport --db test --collection restaurants --file location/of/jsonfile

答案 4 :(得分:3)

试试这样。复制文本文档中的此代码,并使用.sh扩展名保存。将这两个文件放在桌面上并在终端

中执行.sh文件
mongoimport --db test --collection students --file students.json

答案 5 :(得分:3)

您好,您需要做以下事情:

  1. 将JSON文件保存在目录中,例如:C:/Users/DEEPU/students.json
  2. 打开命令提示符并使用保存文件的cd命令转到该目录。
  3. 然后输入mongoimport --drop -d students -c grades grades.json
  4. 单击下面的link以查看其是否有效。

答案 6 :(得分:0)

bin&gt; mongoexport -d databasename -c collectionName  -o export.json

答案 7 :(得分:0)

同样适用于from mpl_toolkits.mplot3d import Axes3D import matplotlib.pyplot as plt import numpy as np src = ['facebook', 'google', 'amazon','facebook','facebook','google'] year = [2014,2014,2013,2013,2012,2013] country = ['uk','ru','de','us','uk','us'] avg = [154,267,187,312,274,439] colors = {'uk' : 'b', 'de' : 'y', 'ru' : 'r', 'us' : 'c'} unique_src, idx_src = np.unique(src, return_inverse=True) unique_cty, idx_cty = np.unique(country, return_inverse=True) fig = plt.figure() ax = fig.add_subplot(111, projection='3d') c = [colors[val] for val in country] ax.scatter(idx_src, idx_cty, year, s=avg, c=c) plt.yticks(range(len(unique_cty)), unique_cty, rotation=340) plt.xticks(range(len(unique_src)), unique_src, rotation=45, horizontalalignment='right') ax.set_zticks(np.unique(year)) plt.show() 。如果需要还原db或其架构,则需要转到.zip文件所在的路径,然后运行mongorestore命令。 mongorestore

答案 8 :(得分:0)

如果您使用的是Windows计算机,请打开新的命令提示符,然后尝试执行以下操作:

mongoimport.exe -h localhost:27017 -d sampleTestDB -c testc -u "" -p "" D:\mongoSample.json

注意:如果您未设置PATH,请先设置路径,然后尝试此操作。

如何设置路径?

==>在“环境变量”中,选择“路径”,然后单击“编辑”,复制mongodb安装路径,如下所示并保存

C:\Program Files\MongoDB\Server\3.4\bin

答案 9 :(得分:0)

我在Ubuntu 16.04上也遇到了同样的问题。我误解了,我在MongoDB shell中运行。 mongoimport是实用工具。您只需要打开新终端并在mongodb shell内而不是运行mongoimport命令。 mongoimport --db <dbname> --collection zips --drop --file <location of file>

答案 10 :(得分:0)

我也在Windows 10中做同样的错误。  是的,mongoimport应该在mongo shell之外执行。

请检查mongo安装路径,直到bin在系统路径中,否则将引发错误。 然后从命令窗口(不是mongo shell)执行下面的命令

mongoimport --db testdb --collection mytable --file "D:\Emp.json"

答案 11 :(得分:0)

首先,在我的情况下,导航到系统中mongoexport.exe所在的文件夹( C:\ Program Files \ MongoDB \ Server \ 4.0 \ bin )。现在,在cmd终端而不是mongo shell上执行mongoimport命令。 mongoimport命令不应在mongo shell上执行。

执行:

value =

在linux中:

C:\Program Files\MongoDB\Server\4.0\bin>mongoimport --db project --collection users --file data.json

这里的data.json文件位于mongoimport所在的相同目录中,否则我们必须为该文件提供路径/位置

答案 12 :(得分:0)

您似乎试图在 mongod cmd 之后运行 cmd。

> sudo mongoexport --db envyd -c users --out /var/www/api/dump_beta/users.json
2021-05-05T09:09:18.779+0000 E QUERY    [thread1] SyntaxError: missing ; before statement @(shell):1:5

从文件夹中像这样使用

ubuntu@ip-172-11-11-186:~$ sudo mongoexport --db envyd -c users --out /var/www/api/dump_beta/users.json
2021-05-05T09:11:01.059+0000    connected to: localhost