MongoDB Dot Statement funktioniert nicht?

... komplette Frage anzeigen

1 Antwort

Sieht nach 2 Fehlern aus:

  1. deine Anfrage sucht nach dem key "session.ip" obwohl das Feld nur "ip" heißt. "session" ist doch die Datenbank, oder?
  2. Bei der Anfrage werden keine Hochkomma (") verwendet (bei Insert schon)
> use test
switched to db test
> db.test.insert({"ip": "::1"});
> db.test.findOne({ip:"::1"});
{ "_id" : ObjectId("56c577549d7272dfee6682a2"), "ip" : "::1" }
Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Carnictis
18.02.2016, 13:48

Also erstens einmal danke dafür, dass du dir die Zeit genommen hast, mir auf meine Frage zu antworten, Fregrin.

Das "session" ist ein ganz normales Field in der Collection "sessions". Gemeint war, dass sich im "session" Field noch weitere Felder befinden wie unter anderem das "ip" Field.

Die Syntaxvarianten die du angegeben hast, habe ich beide schon durchprobiert. Leider ohne Erfolg.

Der aktuelle (verkürzter) Eintrag in der Datenbank sieht folgendermaßen aus:

> db.sessions.find()
{ "_id" : "<ObjectID>", "session" : "{\"ip\" : \"::1\", \"httpOnly\" : true}"}

Um vielleicht noch etwas mehr Klarheit zu verschaffen: Die Einträge werden mittels MongoStore abgespeichert, wodurch auch dieses komische Schema entsteht (mit \")

0

Was möchtest Du wissen?