Hallo, so habe ich diese Testdaten in Mongo für mongoengine, die ich für die Speicherung von Benutzer-Warenkorb verwenden:Gruppierung in mongoengine EmbeddedDocumentListField
{
"_id" : ObjectId("55e492ac516ddc17a8b07d2a"),
"user" : ObjectId("55e3f236516ddc78296968be"),
"items" : [
{
"item" : ObjectId("55e24cd6516ddcbdc081842b"),
"quantity" : 2,
"added_date" : ISODate("2015-08-31T17:44:49.023Z")
},
{
"item" : ObjectId("55e24cd6516ddcbdc0818425"),
"quantity" : 3,
"added_date" : ISODate("2015-08-31T17:44:49.025Z")
},
{
"item" : ObjectId("55e24cd6516ddcbdc0818420"),
"quantity" : 3,
"added_date" : ISODate("2015-08-31T17:44:49.026Z")
}
]
}
Hier werden die Modelle:
class CartItem(mongoengine.EmbeddedDocument):
item = mongoengine.ReferenceField('Item')
quantity = mongoengine.IntField()
added_date = mongoengine.DateTimeField(default=datetime.now())
class Cart(mongoengine.Document):
user = mongoengine.ReferenceField('User')
items = mongoengine.EmbeddedDocumentListField(CartItem)
Hier speichere ich Artikel in Einkaufswagen des Benutzers. Jetzt möchte ich alle eindeutigen Elemente im Listenfeld Elemente erhalten, da es doppelte Einträge geben wird.
ich die folgenden Abfragen die Elemente zu erhalten:
cart = Cart.objects.filter(user=user).first()
queryset = cart.items
In diesem Fall denke ich, dass ich die Elemente in der Gruppe haben würde, habe ich versucht, roh Abfrage in Filter: cart.items.filter(__raw__...)
Aber das funktioniert einfach nicht Weil Raw in diesem Fall nicht unterstützt wird. Kann mir bitte jemand helfen wie ich das machen kann? Vielen Dank!
Das ist großartig! Vielen Dank! Die einzige Sache, die ich änderte, ist .distinct ('items.item') – Nazariy1995
Froh, zu helfen! Ich habe das gleiche in die ANS aufgenommen. –