Für Platzhalter wie diese, können Sie Regex verwenden, die etwas aussehen würde:
db.collection.find({"path": new RegExp("foo/bar/.*?/somethingelse")})
Aber wenn ich Ihre Frage richtig verstanden habe, haben Sie einen einzigen Dokument in Ihrer Sammlung mit einem Pfad von {"path":"foo/bar/{id}/somethingelse"}
und Sie möchten es zurückgeben, wenn die Abfrage tatsächlich für db.collection.find({path:"foo/bar/1/somethingelse"})
ist. Um dies zu tun, ist es wahrscheinlich am besten, dass Sie vor der Suche die Suche ersetzen, um die tatsächliche Abfrage wie folgt zu ändern.
path = path.replace(/foo\/bar\/(.*)\/somethingelse/, 'foo/bar/{id}/somethingelse')
db.collection.find({path:path})
Hoffe, das hilft!
bearbeiten basierend auf Kommentare
ein Reverse-Platzhalter, um folgende Aktionen funktionieren sollte übereinstimmen, das angeforderte Dokument und alle passenden Platzhalter zurück. Sie müssen definieren, was jede tatsächliche Wildcards sind, damit dies funktioniert.
path.replace(/foo\/bar\/(.*)\/somethingelse/, 'foo/bar/($1|{id}|\*)/somethingelse')
db.collection.find({path: new RegExp(path)})
Sammlung können mehrere Dokumente, wie { "Pfad": "foo/*/bar/somethingelse"} so in diesem Fall db.collection.find ({path: "foo/1/bar/somethingelse" }) sollte das Ergebnis holen; grundsätzlich möchte ich umgekehrte Wildcard. – Abhijeet
Hattest du Glück mit der aktualisierten Antwort? –