我想在shell脚本中执行mongo个命令,例如在脚本test.sh中:

#!/bin/sh
mongo myDbName
db.mycollection.findOne()
show collections

当我通过./test.sh执行这个脚本时,就建立了与MongoDB的连接,但没有执行以下命令.

How to execute other commands through shell script 100?

推荐答案

如果某个命令只是一个命令,也可以使用--eval标志对其求值.

mongo --eval "printjson(db.serverStatus())"

Please note:如果您使用的是Mongo运算符,以$sign开头,那么您需要将eval参数用单引号括起来,以防止shell将运算符作为环境变量进行求值:

mongo --eval 'db.mycollection.update({"name":"foo"},{$set:{"this":"that"}});' myDbName

否则你可能会看到这样的情况:

mongo --eval "db.test.update({\"name\":\"foo\"},{$set:{\"this\":\"that\"}});"
> E QUERY    SyntaxError: Unexpected token :

Mongodb相关问答推荐

Select 筛选聚合中的嵌套字段

为什么数组长度0被认为是Mongoose中排序中最大的数字

如何在 mongodb 中将一个方面的结果合并到一个有条件的列表中?

Mongodb 按数组元素聚合组

在 MongoDB 中加入多个集合

程序可以运行,但我不断收到发送到客户端后无法设置标题,我应该忽略它吗?

MongoDB查询仅返回嵌入文档

使用 homebrew 和 Xcode 8.1.1 安装 Mongodb 失败

.NET 4 中是否有 mongodb C# 驱动程序支持 System.Dynamic.DynamicObject?

$elemMatch 的 MongoDB 索引

mongodb中类型不相等的查询

MongoDB $or 查询

将 MongoDB 数据库复制到本地计算机

为什么使用 Redis 而不是 MongoDb 进行缓存?

我如何使用 Twitter 的流 api 中的推文并将它们存储在 mongodb 中

判断 mongoDB 是否连接

处理Mongodb连接的正确方法是什么?

使用命令行从 MongoDB 数据库中的所有集合中删除所有索引

AsQueryable 方法是否在新的 Mongodb C# 驱动程序 2.0rc 中离开?

如何从集合中删除除 MongoDB 中的文档之外的所有文档