Abfrage nur das Feld "name" in Mongodb
Betrachten Sie ein Dokument in Mongodb zB:
{name:"Josh","address":{"street_no":34,"district":"Gurgaon","pincode":"1234xyz"}}
Wie ich hol den Feld-Namen(nicht die Werte)durch Abfragen ? Ist es möglich? Zum Beispiel muss ich eine Abfrage schreiben, welche mich zurückbringen "name","Adresse","street_no","district" und "pincode" wie die Felder in der Mongodb-Dokument.
- Sie können Sie nur abrufen, Werte und eine Abfrage auf die Werte. Sie müssten strukturieren Sie Ihre Daten '{"key": "street_no", "value": 34}`
- Sie wäre wahrscheinlich besser dran mit einem Schlüssel-Wert-Speicher, die hier für Ihre Art von Abfragen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie nur abrufen, Werte und eine Abfrage auf die Werte. Sie müssten strukturieren Sie Ihre Daten zu sein, eher wie dieser:
{"key": "street_no", "value": 34}
. Natürlich, das könnte sich dramatisch auf Ihre Indizierung und andere sucht, die Sie vielleicht zu tun ist (und sicherlich können die Lesbarkeit eines Dokuments Struktur).Es sei denn, Sie haben Hunderte von Felder und ein sehr großes Dokument ist, würde ich vorschlagen, dass du einfach nur wieder die Werte anstatt zu versuchen, um MongoDB zurück, nur die Feldnamen.
Wenn Sie wirklich brauchen, Feldnamen, könnten Sie speichern diese in einem array als Teil des Dokuments, wenn Sie wollten (wenn die
key/value
Vorschlag schien nicht zu passen, deine anderen Anforderungen). Es ist zwar doppelte Lagerung, diese Art von Technik ist manchmal notwendig, mit MongoDB.Können Sie immer überprüfen, die für die Existenz eines bestimmten Feldes mit Hilfe
$exists
(Dokumentation).Ein weiterer interessanter Weg, um das schema könnte sein, speichern Sie die Metadaten des Dokuments in sich:
z.B.
Vorteile:
Können Sie ganz einfach ausschließen Metadaten von Dokument in Abfrage:
z.B.
db.collection.find({},{metaData:0})
Nachteile:
Gibt es sehr viele doppelte Daten eingefügt in die db.
P. S. : Das wäre nur sinnvoll, wenn Sie eine Update-schema.