我正在使用nginx/PHP/MongoDB堆栈,并试图通过创建两个批处理文件在Windows上设置我的开发环境.

开始球棒

cd C:\www\nginx
start nginx
cd C:\www\php
start php-cgi.exe -b 127.0.0.1:9000
cd C:\www\mongodb
start mongod

停止球棒

cd C:\www\nginx
nginx -s quit
cd C:\www\php
taskkill /F /IM php-cgi.exe
cd C:\www\mongodb
mongo --eval "use admin; db.shutdownServer(); quit"  # this doesn't work
mongo --eval stop_mongod.js  # this doesn't work either

使用taskkill停止mongod不是一个选项,因为这可能会导致数据损坏.

推荐答案

来自mongo shell documentation:


使用dbname

此命令在脚本模式下不工作.相反,您需要在连接中显式定义数据库(在上面的示例中为/dbname).

或者,也可以在脚本中创建连接:

db2 = connect("server:27017/otherdbname")

我想出了以下代码:

 db = connect("localhost:27017/admin");
 db.shutdownServer();
 quit();

如有必要,调整连接管柱.然后从命令行或批处理脚本中:

mongo stop_mongod.js

Mongodb相关问答推荐

从MongoDB中的一个非空字段获取值

无法配置数据源:未指定url属性,无法为 MongoDb 配置嵌入数据源

MongoDB - 将数组元素转换为新字段

MongoDB 聚合 - $project 和 $match 阶段未按预期工作

Ruby on Rails 的 Cassandra、mongodb 或 couchdb

Node.js 数据库的抽象层

在 Mongoid 中,Date、Time、DateTime 和 TimeWithZone 字段类型有什么区别吗?

MongoDB:单个数据库处理程序的 >5 个打开连接

启动mongodb和express的正确方法?

具有简单密码认证的 MongoDB 副本集

在 Postgres JSON 数组中查询

MongoDB 嵌套 OR/AND 在哪里?

MongoDB 范围查询中 $lt 和 $gt 的顺序

MongoError: The dollar ($) prefixed field '$push' in '$push' is not valid for storage

如何在 $match 内的 mongodb 聚合查询中使用 $regex

如何在 Ubuntu 上安装 mongodb-clients 最新版本?

brew install mongodb 错误:Cowardly refusing to `sudo brew install' Mac OSX Lion

show dbs 给出Not Authorized to execute command错误

查找聚合性能差

findOneAndUpdate 中的文档未更新