Ich bin ziemlich neu in Mongo db und komme aus T-SQL-Hintergrund, ich finde wenig schwer zu verstehen, wie Joins in Mongo arbeiten.Mongo DB Join Collections
Ich habe einen sehr einfachen Fall, dass ich eine haben "User Table .. err .. Sammlungen" und "User Audit Collections" ..
Meine User Collection sieht ungefähr so aus.
{
"_id": LUUID("d991e92a-766c-054e-9ad8-1c902acc6efc"),
"System": {
"VisitCount": 1
},
"UserData": {
"Uid": "46831",
"UserName": "abc.",
"FirstName": "abv",
"LastName": "test",
"EmailId": "[email protected]",
"Region": "Georgia",
"Postal": "10000",
"Country": "United States",
"Phone": "800-000-1734",
}
}
und ein User-Audit-Tabelle:
{
"_id": LUUID("9561a583-0afe-e844-a090-43ffdab46ed2"),
"UserId": LUUID("914ed252-3fc7-d84c-9731-f382e7cf400b"),
"StartDateTime": ISODate("2016-05-12T04:07:37.299Z"),
"EndDateTime": ISODate("2016-05-12T04:07:42.715Z"),
"SaveDateTime": ISODate("2016-05-12T04:28:23.186Z"),
"Browser": {
"BrowserVersion": "50.0",
"BrowserMajorName": "Chrome",
"BrowserMinorName": "50.0"
},
"Pages": [
{
"DateTime": ISODate("2016-05-12T04:07:37.365Z"),
"Duration": 5416,
"Item": {
"_id": LUUID("f293157a-f22d-fe49-a7b0-f66f412408fe"),
"Language": "en",
"Version": 1
}"Url": {
"Path": "/"
},
"VisitPageIndex": 1
},
{
"DateTime": ISODate("2016-05-12T04:07:42.781Z"),
"Duration": 0,
"Item": {
"Version": 0
},
"SitecoreDevice": {
"_id": LUUID("df7f5dfe-c089-994d-9aa3-b5fbd009c9f3"),
"Name": "Default"
},
"MvTest": {
"ValueAtExposure": 0
},
"Url": {
"Path": "/Sample Page1"
},
"VisitPageIndex": 2
}
]
}
Ich brauche eine Wohnung Ansicht, in der jede Zeile alle Benutzer Benutzerinformation halten und die Seiten der Benutzer besucht.
Die Überwachungsinformationen können nach Benutzer gruppiert oder pro Benutzer wiederholt werden. Meine Hauptidee besteht darin, die Benutzerdetails mit der besuchten Seite zu verknüpfen.
Ich suche so etwas wie ein LEFT OUTER JOIN Äquivalent
so etwas wie
Select * from usertable, useraudittable
on usertable.id = userAuditTable.UserId
group by userID.
Dank Andre .. Ich war zufällig das gleiche Dokument überprüft und ich lief genau die gleiche Abfrage .. ich bin immer Ergebnisse zurück .. aber sie sind nicht mehr als 50 ist, dass eine Einschränkung? –
Entschuldigung für die lange Zeit. Ich habe Ihre Beispieldaten lokal ausprobiert und 67 Audit-Datensätze eingefügt und alle mithilfe der oben genannten Aggregationsabfrage erfasst. Ich bin mir keiner Beschränkung bewusst, besonders solch eine niedrige Zahl wie 50. Aber Sie können vorsichtig sein, wenn Sie so große Dokumente zusammenfügen, Sie werden einige Speicher- und Leistungsprobleme bekommen. Sie können die Felder, die von der Aggregationspipeline zurückgegeben werden, immer einschränken. – andre
Danke. Ich erkannte, dass dies eine Einschränkung mit GUI ist. RoboMongo gab nur 50 Datensätze zurück. Ich konnte die Aufzeichnungen von Mongobooster und Slamdata bekommen. –