Ich werde versuchen, mit Beispieldaten zu erklären. Ein Benutzer kann eine beliebige Anzahl von Bewertungen erstellen, aber ich möchte nur die neueste von einem Rezensenten zurückgeben.Finden Sie alle Dokumente, aber wenn einige Dokumente denselben Wert haben, erhalten Sie die neueste
{
id : 1
name : "John",
review : "only one review"
dateCreated : 2017-02-23 02:35:11.420Z
}
{
id : 3
name : "Sam"
review : "second entered"
dateCreated : 2017-02-23 02:41:42.300Z
}
{
id : 2
name : "Sam",
review : "fist enterd"
dateCreated : 2017-02-23 02:36:32.150Z
}
A .find() sollte die Dokumentation mit der ID 1 und ID zurückkehren 3. Da es von John und die mit ID 3 war der letzte, hergestellt von Sam nur einen gemacht ist.
Gibt es eine Abfrage dafür?
Mein aktuelles Projekt ist schwieriger, weil ich anstelle von name
habe ich userId
und anonId
. Diese Felder haben Werte, die Objekte Ids sind. Der komplizierteste Teil ist, dass ein Dokument nicht beides enthält. Entweder enthält es eine userId
oder eine anonId
Also ich denke, ich würde eine oder Bedingung zu vielleicht brauchen. anonId oder userId
vielleicht können Sie mir auch darüber Ideen geben.
EDIT:
meine aktuellen Daten sieht wie folgt aus mehr. Es ist komplizierter.
{
anonId : ObjectId("58ae4f934a7d2b2490e8f99c")
review : review made by an anoymous user
dateCreated : 2017-02-23 02:35:11.420Z
}
{
anonId : ObjectId("58ae4f934a7d2b2490e8f99c")
review : second review made by anonymous user
dateCreated : 2017-02-23 05:35:11.420Z
}
{
userId : ObjectId("58ae4a5f4a7d2b2490e8f996")
review : first review made by authenticated user
dateCreated : 2017-02-22 05:35:11.420Z
}
{
userId : ObjectId("58ae4a5f4a7d2b2490e8f996")
review : second review made by authenticated user
dateCreated : 2017-02-25 05:35:11.420Z
}
{
userId : ObjectId("58ae5fc7a467cf23947833c8")
review : This will be returened because no other review has this userID
dateCreated : 2017-02-25 05:35:11.420Z
}
gut sagen wir haben 20 Felder/Pfade. Ich sollte die erste für alle von ihnen bekommen –
Ich habe aktualisiert mit Ihrem realen Anwendungsfall (mit 'userId' und' anonId') und mit '$$ ROOT' als ein verschachteltes Dokument um alle Ihre Felder zu kümmern –
Ich denke das macht das Auffüllen der 'userId'' anonId'-Felder schwieriger. kann ich danach bevölkern? Danke für deine Antwort. –