sql >> Database teknologi >  >> NoSQL >> MongoDB

Referencefelt med reference til eksisterende dokument

Du gør det forkert. Du skal gemme en reference til dine Materials objektet, så send det som argument til 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()

Så ser dine dokumenter sådan ud:

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

Hvis du vil bruge en reference til et eksisterende dokument, skal du sende en forespørgsel ved hjælp af .get metoden, så send den reference som argument til Regenerators

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



  1. Azure Table vs MongoDB på Azure

  2. Er der en måde at "smuk" udskrive MongoDB shell output til en fil?

  3. Installerer du PHP 7 MongoDB-klienten/driveren?

  4. Brug af redis som en LRU-cache til postgres