从指定数据库的集合中删除记录

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (22)

我使用mongoDB作为我的数据库,我正在研究django项目并使用mongoengine连接数据库。我的问题是,如果我的默认数据库settings.pyDB1,我想删除内部存在的集合的所有记录,DB2那我该怎么做呢。

settings.py

import mongoengine

mongoengine.connect(
    db= "DB1",
    host='localhost',
)

models.py

class Resources(Document):
    field1= fields.StringField(max_length=20)
    field2 = fields.StringField(max_length=70)
    field3 = fields.StringField(max_length=70)
    field4 = fields.DictField()

    meta = {'collection': 'resources', 'allow_inheritance': False, '_target_db': 'DB2'}

python shell

from .models import Resources
import mongoengine
mongoengine.connect('DB2', alias='ces')
ob = Resources()
ob.switch_db('ces')
ob.field1 = value
ob.field2 = value
ob.field3 = value
ob.save()

现在我收集resourcesDB2它并且它有一些记录,我已经尝试Resources.objects.all().delete() 但它不是删除记录表单DB2而是删除记录,DB1其中是默认数据库。

提问于
用户回答回答于

如果您的每个模型都绑定到1(并且只有1个)数据库,则可以使用连接aliasmeta = {'db_alias': 'your_connectio_alias'}docs)实现所需的功能

有关示例,请参阅此帖子

扫码关注云+社区

领取腾讯云代金券