3

我尝试通过以下方式使用 mongoexport 从 MongoDB 导出 json 文件:

$ mongoexport --db db --collection ds --dbpath ~/db --out ds.json
exported 0 records
Sat Apr 20 23:13:18 dbexit: 
Sat Apr 20 23:13:18 [tools] shutdown: going to close listening sockets...
Sat Apr 20 23:13:18 [tools] shutdown: going to flush diaglog...
Sat Apr 20 23:13:18 [tools] shutdown: going to close sockets...
Sat Apr 20 23:13:18 [tools] shutdown: waiting for fs preallocator...
Sat Apr 20 23:13:18 [tools] shutdown: closing all files...
Sat Apr 20 23:13:18 [tools] closeAllFiles() finished
Sat Apr 20 23:13:18 [tools] shutdown: removing fs lock...
Sat Apr 20 23:13:18 dbexit: really exiting now

我不明白为什么创建的json文件为空,因为数据库实际上包含以下数据:

$ mongo
MongoDB shell version: 2.2.3
connecting to: test
> use ds
switched to db ds
> db.ds.find().pretty()
{
    "_id" : "1_522311",
    "chr" : 1,
    "kg" : {
        "yri" : {
            "major" : "D",
            "minor" : "A",
            "maf" : 0.33036
        },
        "ceu" : {
            "major" : "C",
            "minor" : "A",
            "maf" : 0.05263
        }
    },
    "pos" : 522311
}
{
    "_id" : "1_223336",
    "chr" : 1,
    "kg" : {
        "yri" : {
            "major" : "G",
            "minor" : "C",
            "maf" : 0.473214
        },
        "ceu" : {
            "major" : "C",
            "minor" : "G",
            "maf" : 0.017544
        },
        "jptchb" : {
            "major" : "C",
            "minor" : "G",
            "maf" : 0.220339
        }
    },
    "pos" : 223336
}

我做错了什么?

先感谢您。

4

2 回答 2

3

看来您有一个名为的数据库ds

> use ds
switched to db ds

use ds将当前数据库切换到ds数据库(db从 shell 只是当前数据库的别名)。

然后,您还有一个名为的集合ds

> db.ds.find().pretty()

因此,这意味着您有一个ds带有ds集合 ( ds.ds) 的数据库。

然后,您应该使用这样的导出,并将--db选项设置为ds(假设数据库的路径正确):

mongoexport --db ds --collection ds --dbpath ~/db --out ds.json

3.0+ 更新--dbpath不可

于 2013-04-20T14:08:27.670 回答
1

我知道这个答案可能不满足这个问题,但我希望它能帮助那些在mongoexport 中苦苦挣扎的人不会将任何记录写入 json 输出文件

我的问题是我使用了引号。例如:

$mongoexport --db 'my-database' --collection 'my-collection' --out ds.json

但正确的查询是(不带引号):

$mongoexport --db my-database --collection my-collection --out ds.json

我在执行 a 时发现了这一点$mongodump,它创建了一个带引号的文件夹。这对我来说很陌生,但我知道 mongoexport 将引号解释为名称的一部分。所以当我删除它时,它锻炼得很好。

在此处输入图像描述

在此处输入图像描述

于 2016-04-22T15:31:07.863 回答