创建索引时,PyMongo“语言覆盖不支持:C++”

2024-10-01 17:33:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个集合posts,其中包含类似这样的帖子

{
    "_id": "5ae37fd270f3e72399988198",
    "moderator": {
        "flagged": false,
        "reviewed": true,
        "pending": false,
        "time": "2018-04-27 20:34:38.099000",
        "account": "samhamou"
    },
    "author": "cryptohazard",
    "permlink": "security-enhancements-for-steem-messenger",
    "title": "Security enhancements for Steem Messenger",
    "repository": {
        "owner": {
            "login": "kingswisdom"
        },
        "fork": false,
        "html_url": "https:\/\/github.com\/kingswisdom\/SteemMessenger",
        "full_name": "kingswisdom\/SteemMessenger",
        "name": "SteemMessenger",
        "id": 127418766
    }
}

我正试图用下面的代码在我的一个Python文件中的集合上创建一个索引

posts = DB.posts
posts.drop_indexes()
posts.create_index([
    ("author", "text"),
    ("moderator.account", "text"),
    ("repository.full_name", "text")
])

但这给了我以下错误:

pymongo.errors.OperationFailure: language override unsupported: C++

我怎样才能防止这种情况发生?我可以使用this question答案中的代码创建索引:

> db.posts.createIndex({
    "moderator.account": "text",
    author: "text",
    "repository.full_name": "text"
}, {
    "language_override": "en"
});

不过,我希望能够从Python脚本中完成,而不是必须从MongoDB shell中完成。我试着在Python脚本中添加"language_override": "en"选项,但在检查documentation for create_index时,这似乎是不可能的。你知道吗


Tags: textnameidfalseforrepositoryaccountlanguage

热门问题