【问题标题】:Mongoengine: Manual Reference with ListField()Mongoengine:使用 ListField() 手动参考
【发布时间】:2021-02-15 04:52:41
【问题描述】:

我目前正在使用 mongoengine 创建一个 python 脚本,该脚本需要我使用对象列表。

class Clients(DynamicDocument):
    first_name = StringField()
    last_name = StringField()
    address = StringField()
    phone_number = StringField()
    email = StringField()
    password = StringField()
    vehicles = ListField(ReferenceField(Vehicles))
    deleted = BooleanField()
    appointments = ListField(ObjectIdField())

我知道使用 MongoDB 制作 ListField(ReferenceField()) 将采用 DBRef 形式。但是,我的意图是获取手动参考,以便我可以获取 Vehicles 的 ObjectId。换句话说,我希望数据库看起来像this 而不是this。有办法吗???

【问题讨论】:

    标签: python mongoengine


    【解决方案1】:

    据我了解,您希望将引用存储为 ObjectId,而不是 DBRef。 MongoEngine 默认存储 ObjectId,而不是 ReferenceField,但这实际上是可自定义的(请参阅 ReferenceField 上的 dbref arg)

    ListField(ReferenceField(Vehicles, dbref=False)) # will store [ObjectId] (the default)
    

    ListField(ReferenceField(Vehicles, dbref=True)) # will store [DBRef]
    

    【讨论】:

      猜你喜欢
      • 2020-12-20
      • 2014-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多