Also speichere ich die ObjectId eines post
innerhalb einer comment
BSON. Ein Beispiel für meine BSON Schema ist wie folgt:
{ "_id" : ObjectId("570175e6c002e46edb92aaa5"), "userid" : "56f3f70d4de8c74a69d1d5e1", "postid" : "5700edfe03fcdb000347beaa" }
Nun, ich möchte 5700edfe03fcdb000347bebc
alle Beiträge unter dem postid finden. So
Ich gehe:
"$match" : {
"postid" : {
"$lt" : "5700edfe03fcdb000347bebc"
}
}
Allerdings ist die $ lt Aggregation Bediener eine String ID
anstelle eines ObjectID
zu vergleichen und die zurückgegebenen Ergebnisse ist immer noch genau. Also, wenn diese eine Liste meiner postids ist:
{ "_id" : "5700edfe03fcdb000347beda" }
{ "_id" : "5700edfe03fcdb000347bebf" }
{ "_id" : "5700edfe03fcdb000347bebc" }
{ "_id" : "5700edfe03fcdb000347bebb" }
{ "_id" : "5700edfe03fcdb000347beaa" }
{ "_id" : "5700edfb03fcdb000347bebe" }
{ "_id" : "5700edfb03fcdb000347beba" }
Es zurückkehren:
{ "_id" : "5700edfe03fcdb000347bebb" }
{ "_id" : "5700edfe03fcdb000347beaa" }
{ "_id" : "5700edfb03fcdb000347bebe" }
{ "_id" : "5700edfb03fcdb000347beba" }
Allerdings frage ich mich, ob dies immer der Fall sein wird, oder war das oben nur Glück?
Ich verstehe, dass Sortierung ObjectID immer ein genaues Ergebnis zurückgibt, da innerhalb einer ObjectId ein Zeitstempel ist, so dass es den Zeitstempel verwenden kann, um ObjectId genau zu sortieren. Innerhalb einer Zeichenkette gibt es keinen Zeitstempel, also wird er genau sortieren?