MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Beeinflusst die Generierung von mongodb _id bei der Indizierung

Eine viel bessere Lösung wäre, die _id zu belassen Spalte wie sie ist und eine separate userId haben und Ordner-ID Felder in Ihrem Dokument oder erstellen Sie ein separates Feld mit beiden kombiniert.

Ob es "so schnell" sein wird ... hängt von Ihrer Abfrage ab, aber wenn Sie beispielsweise nach dem "Erstellungsdatum" des Dokuments ordnen, verlieren Sie die Möglichkeit, einfach nach der _id zu ordnen Sie würden auch die Vorteile für Sharding und Verteilung verlieren .

Wenn Sie jedoch beide IDs für Ihre _id verwenden möchten es gibt noch eine andere Möglichkeit ...

Sie können tatsächlich beide verwenden aber lassen Sie sie getrennt ... zum Beispiel ist dies eine gültige _id :

> var doc = { "_id" : { "userID" : 12345, "folderID" : 5152 }, 
              "field1" : "test", "field2" : "foo" };
> db.crazy.save(doc);
> db.crazy.findOne();
{
        "_id" : {
                "userID" : 12345,
                "folderID" : 5152
        },
        "field1" : "test",
        "field2" : "foo"
}
>