在Linux Shell中运行MongoDB命令的错误替换

时间:2019-01-31 14:01:36

标签: linux mongodb bash shell

我正在尝试创建一个简单的bash脚本来测试MongoDB查询的返回值。 Mongo脚本本身返回期望值。但是,如果我尝试将查询脚本放入$ {},则会出现“错误替换” 错误。有任何想法吗 ?

#!/bin/bash

#This line returns the number 1 (expected value)
mongo dbName --eval 'db.dbCollection.find({"updatedAt":{"$gt":ISODate("2019-01-31T00:00:00.000Z")}}).count()'

#Trying run from inside a "${}" returns the error
counter=${"mongo dbName --eval db.dbColection.find({'updatedAt':{'$gt':ISODate('2019-01-31T00:00:00.000Z')}}).count()"}

预先感谢

2 个答案:

答案 0 :(得分:0)

尝试

fileEvent(e) {
 this.data = e.target.files[0];
}
omSubmit() {
  let headers: any = new Headers();
  headers.append('Content-type', 'undefined');
  let formData = new FormData();
  formData.append("selectFile", this.data);
  const req5 = new HttpRequest('POST', 'url as hosted on TOMCAT', formData,
  reportProgress: true,
  responseType: 'text'
  });
  return this.httpClient.request(req5).subscribe(e => {(
  console.log(e);
  )}
}

答案 1 :(得分:0)

我终于找到了答案。该行将期望值返回给var:

counter=$(mongo dbName --eval 'db.dbCollection.find({"updatedAt":{"$gt":ISODate("2019-01-31T00:00:00.000Z")}}).count()')

换句话说,我用简单的引号将Mongo命令括起来,并在命令内部使用了双引号。而且,我使用括号而不是花括号。就是这样!