Flask-PyMongo collMod

前端 未结 2 963
北海茫月
北海茫月 2021-01-25 06:37

I\'m trying to update a TTL collection with the PyMongo. Trying to run this I get \'failed no such cmd: index\'

client.db.command({\'collMod\': url,
                     


        
相关标签:
2条回答
  • 2021-01-25 06:59

    Well I've just decided to switch my index around to instead set the time I want the document to expire at in the database instead of saying how long I want the document to live by using

    db.test.ensure_index("expireOn", expireAfterSeconds=0)
    

    Now I can set the field to a future time that I want the entry to expire instead of having to change the index. Seems strange that as of now there is no way to update the index programatically using python.

    0 讨论(0)
  • 2021-01-25 07:11

    I believe that this would work assuming that url contains the name of the collection with the index you are modifying:

    client.db.command('collMod', url,
                      index={'keyPattern': {'dateCreated':1},
                             'expireAfterSeconds': 3600}})
    

    For anyone else looking for a solution to this I managed with the following:

    client.db.command('collMod', 'notifications', 
                      index={'keyPattern': {'expr': 1}, 
                             'background': True, 
                             'expireAfterSeconds': 604800})
    

    Which results in the following output:

    {u'expireAfterSeconds_old': 3888000, 
     u'expireAfterSeconds_new': 604800, u'ok': 1.0}
    
    0 讨论(0)
提交回复
热议问题