Django MongoDB发动机连接故障

Django MongoDB发动机连接故障,django,mongodb,django-mongodb-engine,Django,Mongodb,Django Mongodb Engine,[已解决]在成功完成后,我尝试使用mongoDB作为数据库,具有。这是settings.py中的数据库配置: DATABASES = { 'default': { 'ENGINE': 'django_mongodb_engine', 'NAME': 'test', 'HOST': 'localhost', 'PORT': 27017

[已解决]在成功完成后,我尝试使用mongoDB作为数据库,具有。这是
settings.py中的数据库配置:

DATABASES = {
    'default': {
        'ENGINE': 'django_mongodb_engine', 
        'NAME': 'test',                               
        'HOST': 'localhost',               
        'PORT': 27017,                   
#       'OPTIONS' : {
#           'slave_okay' : True,
#       }
    }
}
这是运行
python manage.py syncdb
:

即使在关闭mongoDB服务器之后,我也出现了这个错误,所以我发现这可能是连接问题。我发布了一个关于我如何解决这个问题的答案



使用Ubuntu 12.04 LTS x64、Python 2.7、django 1.4.2、mongoDB x86_64 2.2.1(全新安装)

你能试着运行

db.repairDatabase()

。。。从mongo终端?

你能试着运行

db.repairDatabase()

。。。从mongo终端?

我解决这个问题的方法如此简单,以至于我几乎为自己一开始就提出这个问题而感到羞愧,但我希望它会有用:

我只是通过在终端中键入以下内容来升级:

sudo pip install git+https://github.com/django-nonrel/mongodb-engine --upgrade

就是这样。

我解决这个问题的方法非常简单,以至于我几乎为自己一开始就提出这个问题而感到羞愧,但我希望它会有用:

我只是通过在终端中键入以下内容来升级:

sudo pip install git+https://github.com/django-nonrel/mongodb-engine --upgrade

就这样。

您设置了副本集吗?如果您只连接到一台服务器,“slave_ok”选项没有任何意义……正如我提到的,我不使用副本集。起初,我没有使用
选项
条目,但错误完全相同。我添加它是因为我认为它可能会有所帮助。无论是否使用它,我都会收到相同的错误。无效的ns只意味着您连接的数据库中没有用户集合。您的数据库未损坏-它显然不包含预期的适当集合/架构。如何使用mongo shell连接到您的mongoDB?我可以通过
mongo
shell连接,是的,但不能通过django应用程序连接。但是,我实际上刚刚解决了django
syncdb
的问题。您设置了副本集吗?如果您只连接到一台服务器,“slave_ok”选项没有任何意义……正如我提到的,我不使用副本集。起初,我没有使用
选项
条目,但错误完全相同。我添加它是因为我认为它可能会有所帮助。无论是否使用它,我都会收到相同的错误。无效的ns只意味着您连接的数据库中没有用户集合。您的数据库未损坏-它显然不包含预期的适当集合/架构。如何使用mongo shell连接到您的mongoDB?我可以通过
mongo
shell连接,是的,但不能通过django应用程序连接。但是,我实际上刚刚解决了django
syncdb
问题。启动
mongod--repair
,没有任何帮助。
db.repairDatabase()
reurns
{“ok”:1}
。但是在那之后,
db.users.validate()
返回相同的
{“errmsg”:“未找到”,“确定”:0,“有效”:false}
,我仍然无法用django连接到数据库。这和启动
mongod--repair
没有任何帮助。
db.repairDatabase()
reurns
{code>{“确定”:1}
。但在此之后,
db.users.validate()
返回相同的
{“errmsg”:“未找到”、“确定”:0、“有效”:false}
,我仍然无法使用django连接到数据库。