JS操作MongoDB
JavaScript处理MongoDB,更新数据:
#!/bin/bash
mongo=/home/zhangzhenghai/cluster/mongodb/bin/mongo
if true; then
OUT=$.out
cat <<EOF | $mongo >& | tee $OUT
use information;
db.roki.find({spch_hotwords_zh:{"\$exists": true}}).forEach(function(doc){
var s=doc.spch_hotwords_zh["com@ro:dotrokid@ro:dothomebase:tag"];
try {
var json = JSON.parse(s);
json.pop("大爷");
var result = JSON.stringify(json);
print(result);
db.roki.update({"_id": doc._id}, {"\$set": {"spch_hotwords_zh.com@ro:dotrokid@ro:dothomebase:tag":result}}); }
catch(err) {
}
});
EOF
fi
替换的源格式为:
{
"_id": "xxx123",
"basic_info": {
"id": "xxx123",
"cmiit": "nil",
"cy": "cn",
"lng": "zh",
"region": "CN",
"signLink": "true",
},
"spch_hotwords_zh": {
"com@ro:dotrokid@ro:dothomebase:tag": "[\"书房开关\",\"书房开关 L1\",\"开关\",\"书房开关 L2\",\"书房开关 L3\",\"客厅开关\",\"面板\",\"客厅开关 L1\",\"客厅开关 L2\",\"客厅开关 L3\",\"阳光茶室\",\"灯\",\"阳光茶室 L1\",\"阳光茶室 L2\",\"阳光茶室 L3\",\"厨房开关\",\"厨房开关 L1\",\"琴房\",\"琴房 L1\",\"琴房 L2\",\"琴房 L3\",\"餐厅开关\",\"餐厅开关 L1\",\"餐厅开关 L2\",\"餐厅开关 L3\",\"包厢开关\",\"包厢开关 L1\",\"包厢开关 L2\",\"包厢开关 L3\",\"卫生间开关\",\"卫生间开关 L1\",\"卫生间开关 L2\",\"玄关开关\",\"玄关开关 L1\",\"玄关开关 L2\",\"存茶室开关\",\"存茶室开关 L1\",\"存茶室开关 L2\",\"存茶室开关 L3\",\"大爷\"]",
"com@ro:dotrokid@ro:dotsystem@ro:dotexecuter:trigger": "[\"早上好\",\"晚上好\"]"
},
"PUSH-MESSAGE": {
"device_type": "ANDROID"
},
"voice_trigger_zh": {
"": "{\"rid\":\"1499247475884\",\"triggers\":[\"晚上好\"],\"enable\":true,\"executions\":[{\"voice\":\"tts 晚上好\",\"delay\":0},{\"voice\":\"播放舒缓音乐\",\"delay\":1200},{\"voice\":\"关机\",\"delay\":0}]}",
"": "{\"rid\":\"1499247476350\",\"triggers\":[\"早上好\"],\"enable\":true,\"executions\":[{\"voice\":\"tts 早上好\",\"delay\":0},{\"voice\":\"播报天气\",\"delay\":0},{\"voice\":\"播放新闻\",\"delay\":1200},{\"voice\":\"关机\",\"delay\":0}]}"
},
"LOCATION": {
"country": "中国"
}
}
程序执行完后:
{
"_id": "xxx123",
"basic_info": {
"id": "xxx123",
"cmiit": "nil",
"cy": "cn",
"lng": "zh",
"region": "CN",
"signLink": "true",
},
"spch_hotwords_zh": {
"com@ro:dotrokid@ro:dothomebase:tag": "[\"书房开关\",\"书房开关 L1\",\"开关\",\"书房开关 L2\",\"书房开关 L3\",\"客厅开关\",\"面板\",\"客厅开关 L1\",\"客厅开关 L2\",\"客厅开关 L3\",\"阳光茶室\",\"灯\",\"阳光茶室 L1\",\"阳光茶室 L2\",\"阳光茶室 L3\",\"厨房开关\",\"厨房开关 L1\",\"琴房\",\"琴房 L1\",\"琴房 L2\",\"琴房 L3\",\"餐厅开关\",\"餐厅开关 L1\",\"餐厅开关 L2\",\"餐厅开关 L3\",\"包厢开关\",\"包厢开关 L1\",\"包厢开关 L2\",\"包厢开关 L3\",\"卫生间开关\",\"卫生间开关 L1\",\"卫生间开关 L2\",\"玄关开关\",\"玄关开关 L1\",\"玄关开关 L2\",\"存茶室开关\",\"存茶室开关 L1\",\"存茶室开关 L2\",\"存茶室开关 L3\"]",
"com@ro:dotrokid@ro:dotsystem@ro:dotexecuter:trigger": "[\"早上好\",\"晚上好\"]"
},
"PUSH-MESSAGE": {
"device_type": "ANDROID"
},
"voice_trigger_zh": {
"": "{\"rid\":\"1499247475884\",\"triggers\":[\"晚上好\"],\"enable\":true,\"executions\":[{\"voice\":\"tts 晚上好\",\"delay\":0},{\"voice\":\"播放舒缓音乐\",\"delay\":1200},{\"voice\":\"关机\",\"delay\":0}]}",
"": "{\"rid\":\"1499247476350\",\"triggers\":[\"早上好\"],\"enable\":true,\"executions\":[{\"voice\":\"tts 早上好\",\"delay\":0},{\"voice\":\"播报天气\",\"delay\":0},{\"voice\":\"播放新闻\",\"delay\":1200},{\"voice\":\"关机\",\"delay\":0}]}"
},
"LOCATION": {
"country": "中国"
}
}
待续。。。
JS操作MongoDB的更多相关文章
- Node.js 操作Mongodb
Node.js 操作Mongodb1.简介官网英文文档 https://docs.mongodb.com/manual/ 这里几乎什么都有了MongoDB is open-source docum ...
- node.js零基础详细教程(7):node.js操作mongodb,及操作方法的封装
第七章 建议学习时间4小时 课程共10章 学习方式:详细阅读,并手动实现相关代码 学习目标:此教程将教会大家 安装Node.搭建服务器.express.mysql.mongodb.编写后台业务逻辑. ...
- 3.从Node.js操作MongoDB文档
1.更新文档结构,而非SQL 2.数据库更新运算符 在MongoDB中执行对象的更新时,需要确切的指定需要改变什么字段.需要如何改变.不像SQL语句建立冗长的查询字符串来定义更新. MongoDB中可 ...
- node.js操作mongoDB数据库
链接数据库: var mongo=require("mongodb"); var host="localhost"; var port=mongo.Connec ...
- 87.node.js操作mongoDB数据库示例分享
转自:https://www.cnblogs.com/mracale/p/5845148.html 连接数据库 var mongo=require("mongodb"); va ...
- node.js操作数据库之MongoDB+mongoose篇
前言 node.js的出现,使得用前端语法(javascript)开发后台服务成为可能,越来越多的前端因此因此接触后端,甚至转向全栈发展.后端开发少不了数据库的操作.MongoDB是一个基于分布式文件 ...
- mongoose之操作mongoDB数据库
mongoose是node.js操作mongoDB数据库的一种工具,借助于mongoose,我们可以便捷的完成一些数据库的基本操作,基本使用如下: 1.安装 npm install mongoose ...
- [Node.js]连接mongodb
摘要 前面介绍了node.js操作mysql以及redis的内容,这里继续学习操作mongodb的内容. 安装驱动 安装命令 cnpm install mongodb 安装成功 数据库操作 因为mon ...
- 二十六、Nodejs 操作 MongoDb 数据库
一. 在 Nodejs 中使用 Mongodb 前面的课程我们讲了用命令操作 MongoDB,这里我们看下如何用 nodejs 来操作数据库需要引包: npm install mongodb --sa ...
随机推荐
- 【LeetCode】215. Kth Largest Element in an Array (2 solutions)
Kth Largest Element in an Array Find the kth largest element in an unsorted array. Note that it is t ...
- linux 版本中 i386/i686/x86-64/pcc 等的区别
在查看dpdk官方文档的时候,发现有 这样(kernel - devel.x86_64; kernel - devel.ppc64:glibc.i686)这样的安装包信息,收集了点资料来分析这三者的关 ...
- 解决IE弹框提示“是否停止运行此脚本”问题
有少数情况因为js处理内容较多,系统计算标红和刷新页面较慢,IE可能会弹框提示“是否停止运行此脚本”,若想要继续,点击“否”即可.并同时按照下面的设置更改一下注册表,即可解决弹框问题. http:// ...
- Python学习笔记(四)——编码和字符串
一.编码 1.编码类别: (1)ASCII码:127个字母被编码到计算机里,也就是大小写英文字母.数字和一些符号 (2)GB2312码:中国制定的用于加入中文汉字的编码 (3)Unicode:防止由于 ...
- webpack window下配置的hello world
峰回路转 一区九折 先看效果:(此效果是webpack执行完之后会生成build文件夹已经它下面的index.html,点击index.html就是下图的效果)
- Android Studio每日小技巧
一般的什么快捷键,技巧的文章也有很多.我也看过很多.下面这些事我在来自国外大神发布的:Android Studio Tips of the Day查看到的,而且对于我来说有帮助的及没用过的. Andr ...
- HTML页面中显示HTML标签<xmp>
最近做东西遇到一个HTML页面中显示HTML标签的需求,比如要显示</span> 解决方法如下 HTML页面中显示HTML标签代码,可以使用<xmp>html标签内容</ ...
- Linux定时器工具
要使用crontab定时器工具,必须要启动cron服务: service cron start crontab的语法,以备日后救急 参见:http://blog.csdn.net/zlzlei/art ...
- elasticsearch实现按天翻滚索引
最近在做集中式日志,将应用的日志保存到Elasticsearch中,结合kibana实现集中化日志监控和报警.在设计ES存储的时候.考虑到日志的特殊性,打算采用Daily Indices方式.名称为: ...
- linux记录sftp命令
使用以下配置方法不需要配置chroot. 编辑sshd_config文件 vi /etc/ssh/sshd_config 增加: Subsystem sftp /usr/libexec/openssh ...