我有一个在Heroku上运行的Meteor应用程序,通过Compose(以前是MongoHQ)使用Mongo数据库插件。
我想从一个完全不同的应用程序(Python / Django,而不是Meteor)将文档插入到这个数据库中。所以我在我的Django应用程序中安装了pymongo
,正确配置了mongodb的连接URI,等等。
但是,当我尝试拨打以下行时:
my_dict_collection.update({'id': my_dict['id']}, my_dict, upsert=True)
我收到以下错误:
OperationFailure: not authorized for upsert on meteor.my_dict_collection
为什么会发生这种情况,我怎样才能超越它?
答案 0 :(得分:0)
如果你可以在流星中进行操作,你应该可以在任何其他应用程序中进行操作。
您是否将其配置如下?
DATABASES = {
'default' : {
'ENGINE' : 'django_mongodb_engine',
'NAME' : 'my_database',
'HOST' : 'database_host',
'PORT' : 'database_port',
'USER' : 'database_user',
'PASSWORD' : 'database_password',
'OPTIONS' : {
'slave_okay' : True,
'tz_aware' : True,
'network_timeout' : 42,
...
}
}
}
使用您获得的凭据:
heroku config:get MONGO_URL
它应该为您提供格式为:
的mongodb网址mongodb://database_user:database_password@database_host:database_port/database_name
上面的url可能有逗号分隔的备用主机名列表。我不确定django-mongodb是否支持,所以你可能只需要使用一个。
答案 1 :(得分:0)
或者你可以在你的应用程序中创建一个Meteor.method,然后使用ddp客户端调用它。见http://www.meteorpedia.com/read/DDP_Clients#Python