我是shell脚本新手。实际上我正在为mongo
编写一个shell脚本来查找特定文档,这个shell脚本接受一个参数并在find
中使用。我写了一个简单的查找查询:
mongo poc --eval "printjson(db.users.find().toArray())"
这工作正常,但现在的问题是,当我想通过传递给出空记录的用户ID来查找特定文档时,所以这是我的shell脚本:
mongo poc --eval "printjson(db.users.find({"userid":"$1"}).toArray())"
我不知道出了什么问题,请帮忙,以便我能够写更新和删除查询。
答案 0 :(得分:0)
问题是您尝试在Bash脚本中的引用字符串中使用双引号。
你应该:
使用单引号:
#!/bin/bash
mongo poc --eval "printjson(db.users.find({'userid':'$1'}).toArray())"
转义字符串中的双引号:
#!/bin/bash
mongo poc --eval "printjson(db.users.find({\"userid\":\"$1\"}).toArray())"
有关详细信息,请参阅:Bash quotes and escaping。