1
有没有在MongoDB查询中使用shell变量的方法?在MongoDB查询中使用shell变量
我有这样的例子:
#!/usr/bin/env bash
mongo --eval "use cdt_db; db.users.update({username:'${USER}'}, {'\$set':{roles:['Admin']}});"
我想单引号和双引号,我得到这个错误:
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
不应该'$ set'是不带引号?最安全的方法是将表达式写在单引号下,并将它与变量值连接:'mongo cdt_db --eval'db.users.update({username:''“$ USER”'“},{$ set:{作用:[ “系统管理员”]}});''。 – randomir
是的,这似乎工作,如果你可以添加一个答案详细解释,我会给予upvote至少 –
很高兴听到它。我会写出来。 – randomir