我是MongoDB的新手,在查找/访问我创建或导入的数据方面遇到了一些问题,因为它最终位于两个不同的位置。
如果我像这样启动shell
$ mongo
然后显示数据库
$ show dbs
这给了我一个我创建的大约10个数据库的列表。它们位于/ data / db目录中。它不包含名为'pact'
的数据库但是,如果我像这样连接
$ mongo localhost/pact
然后再做
$show dbs
它只列出一个db,pact
db,当我通过“mongo”连接到mongo时,没有列出。 'Pact'不在/ data / db目录中。根据我的说明,我可能通过这种方式启动mongod来制作'pact'数据库,
mongod --dbpath data
我认为它会将它放在data / db目录中,我像这样导入pact目录
mongoimport --stopOnError --db pact --collection products < products.json
继续,如果我在irb中使用mongo并像这样开始
>> mongo_client = MongoClient.new("localhost", 27017)
然后执行'show dbs'
我从/ data / db目录(不包括pact)获取了很长的dbs列表。
为了通过irb找到db pact
,我试图在localhost之后包含它,就像我使用mongo localhost / pact
>> mongo_client = MongoClient.new("localhost/pact", 27017)
但是我收到了错误。
1有没有办法可以找出'pact'db所在的目录?
2如果不是通过
,如何使用Mongo驱动程序在irb中访问它mongo_client = MongoClient.new(“localhost / pact”,27017)
我认为可以使用,因为我可以在shell mongo localhost/pact
3基于我告诉你的内容,你能解释一下为什么会这样吗(我假设这不是将数据保存在另一个目录中的正确方法)
答案 0 :(得分:1)
我的建议是在mongodump
shell上下文
mongo localhost/pact
mongodump -d pact -o /out/dir
备份整个数据库。并在normall mongorestore
shell上下文
mongo
mongorestore -d pact /out/dir
恢复数据库。