在MongoAlchemy文档中存储mongo_id?

是否可以将mongo_id存储为一个 ObjectId 对象在MongoAlchemy字段中?我已经能够在MongoAlchemy字段中存储一个 ObjectId 但似乎我只能在MongoAlchemy ORM的上下文中存储id的字符串值。

这是我的一些代码。

class Group(db.Document):  
    name = db.StringField()
    trial_id = db.StringField(required=False)
    participants = db.ListField(
        db.DictField(db.AnythingField()), default_empty=True, required=False)

    def add_participant(self, participant):
        self.participants.append({
            'participant_id': participant.mongo_id,
            'start': datetime.utcnow(),
            })

class Trial(db.Document):    
    name = db.StringField()
    groups = db.ListField(
        db.DocumentField(Group), default_empty=True, required=False)

    def add_group(self, group):
        group.trial_id = str(self.mongo_id)
        group.save()

    def get_group(self, group):
        return Group.query.filter(
            {'name': group, 'trial_id': str(self.mongo_id)}).first()

你会看到我可以把mongo_id存储为一个… … ObjectId 中的对象 Group 办法 add_participant (因为它是手动创建文档,而不是通过MongoAlchemy ORM),但我被迫将mongo_id转换为字符串,以便将其存储在 db.StringField.

我试着把原来的东西储存起来 ObjectId 在…中 db.AnythingField但后来却无法通过它来过滤。

有谁知道是否有可能将一个 “小号 “存储在 “小号 “中?ObjectId 在MongoAlchemy字段中,然后在数据库查询中进行过滤?

谢谢您

解决方案:

你想要一个ObjectIdField。 http:/www.mongoalchemy.orgapischemafields.html#mongoalchemy.fields.ObjectIdField

这是用于mongo_id的字段类型(尽管这个字段是特殊情况)

给TA打赏
共{{data.count}}人
人已打赏
解决方案

在Soot的Jimple表示法中缺少一个局部变量。

2022-5-13 17:00:11

解决方案

如何在Rails 6Zeitwerk中扩展gem类而不破坏代码重载?

2022-5-13 17:00:13

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索