作者回复: remove是mongo shell下的命令。deleteOne deleteMany是程序语言下的API。做的是类似的事情。
作者回复: 数据格式转换是4.0才开始支持的功能,本质上所有的转换都可以用`$convert`完成,但是转换为不同的数据类型时又有不同的简化版本。例如`$toInt`,`$toBool`,`$toDate`等。以下以使用最`$toDate`为例举例说明使用方式:
```javascript
// 测试数据
db.convertTest.insertMany([{
date: new Date().getTime()
}, {
date: new Date().getTime() - 3600000
}, {
date: new Date().getTime() - 7200000
}]);
```
在`$project`中直接使用`$toDate`即可将epoch时间转换为日期类型:
```javascript
db.convertTest.aggregate([{
$project: {
date: {
$toDate: "$date"
}
}
}]);
```
参考:
- `$convert`: https://docs.mongodb.com/manual/reference/operator/aggregation/convert/
- `$toInt`: https://docs.mongodb.com/manual/reference/operator/aggregation/toInt/
- `$toBool`: https://docs.mongodb.com/manual/reference/operator/aggregation/toBool/
- `$toDate`: https://docs.mongodb.com/manual/reference/operator/aggregation/toDate/
作者回复: 关于1)比较难以判断实际情况。
2)
首先要把mongodb安装成service,参考Redhat的安装:
https://docs.mongodb.com/manual/tutorial/install-mongodb-on-red-hat/
然后用chkconfig命令启用开机自启动,这里有教程:
https://blog.csdn.net/u013554213/article/details/78792686
分布式环境下也是一样。如果你是说希望有那种中央化的管控,那你可以使用OpsManager,可以通过GUI对全部节点进行起停控制,并且是会在服务器宕机时候自动重启服务。
作者回复: 这个表示查找一个JSON文档,这个文档有一个字段叫做 from, 并且 from字段的内容就是 {country: "China"} ,不多也不少。
作者回复: 你是不是要这个:
db.orders.find({
"orderLines": {
$elemMatch: {
"sku": "1400",
"qty": 62
}
}
}, {
"_id": 0,
"orderLines.$": 1
})
作者回复: 请把问题描述清楚。