如何为Mongo Find查询编写Shell脚本。

时间:2016-06-09 07:04:33

标签: bash mongodb shell mongodb-query

我是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())"

我不知道出了什么问题,请帮忙,以便我能够写更新删除查询。

1 个答案:

答案 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