Ich suche, wie so etwas zu bekommen:Abfrage für für jede Sammlung Rolle Privilegien erhalten mongoDB
{ _id: "myApp.appUser",
role: "appUser",
db: "myApp",
privileges: [
{ resource: { db: "myApp" , collection: "" },
actions: [ "find", "createCollection", "dbStats", "collStats" ] },
{ resource: { db: "myApp", collection: "logs" },
actions: [ "insert" ] },
{ resource: { db: "myApp", collection: "data" },
actions: [ "insert", "update", "remove", "compact" ] },
{ resource: { db: "myApp", collection: "system.js" },
actions: [ "find" ] },
],
roles: []
}
Diese JSON gehört Dokumentation MongoDB (https://docs.mongodb.com/v3.2/reference/system-roles-collection/#examples).
Aber ich habe die Abfrage nicht gefunden, um dies zu erhalten.
Ich weiß, dass ich tun kann:
db.getSiblingDB('databaseName').getRole('rolename', { showPrivileges: true })
Aber ich will das nicht, weil ich alle Privilegien (Aktionen) müssen in der gleichen Zeile.
Kann mir jemand helfen?
Danke !!
Vielen Dank für die Antwort. Das Ergebnis ist jedoch sehr ähnlich JSON, die ich mit der ersten Abfrage erhalten habe. Ich nehme an, dass ich die Textdatei mit dem JSON mit Bash-Shell verarbeiten muss. So verstehe ich, dass es keine Möglichkeit gibt, Aktionen für jede Sammlung in derselben Zeile zu erhalten? Danke !! – Nacho
Wolltest du sagen "existiere"? Die obigen Abfragen geben leicht unterschiedliche JSON-Ergebnisse, aber alle haben die Privilegien und ich dachte, dies beantwortet deine Frage, da du gesagt hast: "Aber ich will das nicht, weil ich alle Privilegien (Aktionen) in derselben Zeile benötige." – chridam
Abgesehen von der gleiche Linie, jetzt ist es nicht wichtig. Der Hauptpunkt besteht darin, die Antwort nach der Sammlung zu filtern. In sql wäre es "select .... where collection =" ". – Nacho