Meteor.js + Mongo:如何从外部进程写入我的Mongo集合?

时间:2014-11-07 22:14:01

标签: django mongodb meteor upsert

我有一个在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

为什么会发生这种情况,我怎样才能超越它?

2 个答案:

答案 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,
            ...
        }
    }
}

See documentation here.

使用您获得的凭据:

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