Mongoengine 删除 ReferenceField 值
Mongoengine remove ReferenceField value
我想删除 mongoengine 中的 ReferenceField 值
我的模特:
class User(db.Document):
name = StringField(required=True)
last_name = StringField()
address_ref = ReferenceField(Address)
class Adress(db.Document):
street = StringField()
city = StringField()
state = StringField()
不幸的是在 mongengine 文档中。关于unset的信息不多。所以我正在尝试这样的事情
User.update(id=ObjectId("59ca38c5d1174d081c9bcaca")).unset(address_ref="").first()
但是我有一个错误
TypeError: update() missing 1 required positional argument: 'self'
我的文档
{
"_id": {
"$oid": "59ca38c5d1174d081c9bcaca"
},
"name": "Amanda",
"last_name": "Barow",
"address_ref": {
"$oid": "59ca38c9d1174d081c9bcad7"
}
},
{
"_id": {
"$oid": "59ca38c4d1174d081c9bcac9"
},
"name": "Larry",
"last_name": "Denor",
"address_ref": {
"$oid": "59c8f34200fc624a0168c4bc"
}
}
我想要这种效果 (Amanda adress_ref = "" )
{
"_id": {
"$oid": "59ca38c5d1174d081c9bcaca"
},
"name": "Amanda",
"last_name": "Barow",
"address_ref": ""
},
{
"_id": {
"$oid": "59ca38c4d1174d081c9bcac9"
},
"name": "Larry",
"last_name": "Denor",
"address_ref": {
"$oid": "59c8f34200fc624a0168c4bc"
}
}
您的更新导致类型错误,因为您在 class 级别调用此方法 - 您应该在 document/instance 级别调用它。这就是为什么 TypeError 提到缺少第一个位置参数 (self
) 的原因,这是要更新的实例。
所以你的更新行应该像这样工作:
User.objects().first().update(address_ref="")
如果更新有效,该行将 return 1
。
我想删除 mongoengine 中的 ReferenceField 值
我的模特:
class User(db.Document):
name = StringField(required=True)
last_name = StringField()
address_ref = ReferenceField(Address)
class Adress(db.Document):
street = StringField()
city = StringField()
state = StringField()
不幸的是在 mongengine 文档中。关于unset的信息不多。所以我正在尝试这样的事情
User.update(id=ObjectId("59ca38c5d1174d081c9bcaca")).unset(address_ref="").first()
但是我有一个错误
TypeError: update() missing 1 required positional argument: 'self'
我的文档
{
"_id": {
"$oid": "59ca38c5d1174d081c9bcaca"
},
"name": "Amanda",
"last_name": "Barow",
"address_ref": {
"$oid": "59ca38c9d1174d081c9bcad7"
}
},
{
"_id": {
"$oid": "59ca38c4d1174d081c9bcac9"
},
"name": "Larry",
"last_name": "Denor",
"address_ref": {
"$oid": "59c8f34200fc624a0168c4bc"
}
}
我想要这种效果 (Amanda adress_ref = "" )
{
"_id": {
"$oid": "59ca38c5d1174d081c9bcaca"
},
"name": "Amanda",
"last_name": "Barow",
"address_ref": ""
},
{
"_id": {
"$oid": "59ca38c4d1174d081c9bcac9"
},
"name": "Larry",
"last_name": "Denor",
"address_ref": {
"$oid": "59c8f34200fc624a0168c4bc"
}
}
您的更新导致类型错误,因为您在 class 级别调用此方法 - 您应该在 document/instance 级别调用它。这就是为什么 TypeError 提到缺少第一个位置参数 (self
) 的原因,这是要更新的实例。
所以你的更新行应该像这样工作:
User.objects().first().update(address_ref="")
如果更新有效,该行将 return 1
。