MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

ReferenceField mit Verweis auf vorhandenes Dokument

Du machst das falsch. Sie sollten einen Verweis auf Ihre Materials speichern Objekt übergeben Sie es dann als Argument an Regenerators

Demo

class Materials(Document):
    title = StringField(unique=True, required=True)

class Regenerators(Document):
    material = ReferenceField(Materials, required=True)

m = Materials(title='aisi304').save()

r = Regenerators(material=m).save()

Dann sehen Ihre Dokumente so aus:

> db.regenerators.find()
{
        "_id" : ObjectId("565c9d110acf4510cf1f8712"),
        "material" : ObjectId("565c9cfc0acf4510cf1f8711")
}
> db.materials.find()
{ "_id" : ObjectId("565c9cfc0acf4510cf1f8711"), "title" : "aisi304" }
> 

Wenn Sie einen Verweis auf ein vorhandenes Dokument verwenden möchten, müssen Sie mithilfe von .get -Methode übergeben und dann die Referenz als Argument an Regenerators übergeben

m = Materials.objects.get(title='aisi304')
r = Regenerators(material=m).save()