使用 MongoEngineObjectType 使 ID 字段成为必需

Posted

技术标签:

【中文标题】使用 MongoEngineObjectType 使 ID 字段成为必需【英文标题】:make ID field required with MongoEngineObjectType 【发布时间】:2019-10-19 02:07:34 【问题描述】:

我将石墨烯与石墨烯-mongo 一起使用。我的 graphql 架构的类型类似于:

type Report 
   id:ID!
   name:String!

我的这种类型的石墨烯类是

class Product(MongoengineObjectType):

    class Meta:
        model = MongoProduct

mongoengine 类是

class MongoProduct(mng.DynamicDocument):        
    name = mng.fields.StringField(required=True)

如何使id 字段成为必填字段? GraphiQL 在name 旁边显示一个感叹号,但在id 旁边没有。

【问题讨论】:

【参考方案1】:
class MongoProduct(mng.DynamicDocument):
    id = ObjectIdField(primary_key=True, required=True)    # Optional: Add default=bson.ObjectId        
    name = mng.fields.StringField(required=True)

id 也可以是 IntField 或 StringField,但我建议坚持使用 ObjectId

【讨论】:

以上是关于使用 MongoEngineObjectType 使 ID 字段成为必需的主要内容,如果未能解决你的问题,请参考以下文章

第一篇 用于测试使用

在使用加载数据流步骤的猪中,使用(使用 PigStorage)和不使用它有啥区别?

今目标使用教程 今目标任务使用篇

Qt静态编译时使用OpenSSL有三种方式(不使用,动态使用,静态使用,默认是动态使用)

MySQL db 在按日期排序时使用“使用位置;使用临时;使用文件排序”

使用“使用严格”作为“使用强”的备份