首页 > 解决方案 > 使用 pymongo 或 _id 在 mongodb 中设置自定义索引

问题描述

我需要为我的集合指定一个自定义索引,我用这个函数做了:

def insert_post_mongo (df):
    if db.rss_crawler.estimated_document_count() == 0:
        db.rss_crawler.create_index([("url_hashed", pymongo.HASHED)])
    db.rss_crawler.insert_many(df.to_dict('records'))

我的索引来自我使用 hashlib 库转换的 url:

posts_df['url_hashed'] = [hashlib.md5(x.encode()).hexdigest() for x in posts_df['link']]

但是,不确定这是否是正确的方法。我最初的想法是从该 url 创建一个 Object_Id,但我无法弄清楚如何。Object_id 需要 12 字节的输入或 24 字符的十六进制字符串,我还没有找到方法。但是,仍然不确定这是否有必要,或者拥有二级索引就足够了。

有任何想法吗?非常感谢!

劳尔。

标签: pythonmongodbpymongo

解决方案


你想多了。只需将 _id 设置为您选择的任何内容即可。它不需要是 ObjectId;如果未设置,这只是默认值。


推荐阅读