Existe-t-il un moyen d'utiliser des variables shell dans une requête MongoDB?Utilisation de variables shell dans la requête MongoDB
J'ai ceci par exemple:
#!/usr/bin/env bash
mongo --eval "use cdt_db; db.users.update({username:'${USER}'}, {'\$set':{roles:['Admin']}});"
J'ai essayé des guillemets simples et doubles guillemets, je reçois cette erreur:
MongoDB shell version v3.4.9
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.4.9
2017-10-09T13:53:51.747-0700 E QUERY [thread1] SyntaxError: missing ; before statement @(shell eval):1:4
Ne devrait pas '$ set' sans les guillemets? Le moyen le plus sûr serait d'écrire l'expression sous guillemets simples, en la concaténant avec des valeurs variables: 'mongo cdt_db --eval 'db.users.update ({nom d'utilisateur:"' "$ USER" '"}, {$ set: { rôles: ["Admin"]}}); – randomir
oui cela semble fonctionner, si vous pouviez ajouter une réponse expliquer en détail, je vais donner un upvote à tout le moins –
heureux de l'entendre. Je vais l'écrire. – randomir