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 ...
随机推荐
- [转]TensorFlow---岂止深度学习
原文链接 TensorFlow不仅可以用于深度学习自动求导,它也可用于构建传统机器学习和经典算法. TensorFlow提供了"一揽子"常用数值计算和机器学习算法的构建模块.在本文 ...
- Python中的两种路径
Java中有两种路径,一种是操作系统的路径path,另一种是类路径classpath. Python中也是如此,一种是操作系统环境变量中的path,另一种是PYTHONPATH. 当import xx ...
- Cordova笔记(一)
跨平台的PhoneGap被Adobe收购,改名为Cordova,现在是Apache下的一款开源软件.网上能找到的关于PhoneGap的教程有些方法已不适用,在学习使用最新版的Cordova时有些问题需 ...
- 利用hadoop来解决“共同好友”的问题
假设A有好友B C D:B有好友A C D E:C有好友A B D E:D有好友A B C E;E有好友B C D. A -> B C D B -> A C D E C -> A B ...
- Android适配底部返回键等虚拟键盘的完美解决方案
这个问题来来回回困扰了我很久,一直没能妥善解决. 场景1:华为手机遮挡了屏幕底部. 场景2:进入应用时,虚拟键自动缩回,留下空白区域. 需求: 需要安卓能自适应底部虚拟按键,用户隐藏虚拟按键时应用要占 ...
- SharePoint 2013 Step by Step——How to Create a Lookup Column to Another Site(Cross Site)
OverView In this post,I want to show u how to add a look up column in my list or library that looks ...
- VMware Linux 共享文件夹 虚拟机无共享文件解决方法
恢复虚拟机ubuntu后,首先,点击 虚拟机——安装VMware Tools(Install VMware Tools),这时我们会在Ubuntu系统桌面上发现VMware Tools的光盘图标. 双 ...
- 一步一步学android之控件篇——ListView基本使用
ListView组件在应用程序中可以说是不可或缺的一部分,ListView主要是显示列表数据,同时可以滚动查看,这篇博客主要是对ListView的基本用法进行说明,后面会依次对ListView点击动态 ...
- U811.1接口EAI系列之三--采购订单生成--VB语言
采购订单业务,下面是具体代码与参数说明: 下面调用的通用方法在: http://www.cnblogs.com/spring_wang/p/3393147.html 作者:王春天 2013-10-31 ...
- 要想有什么样的成就就要有什么样的眼光-SNF快速开发平台
1.普通人的圈子,谈论的是闲事,赚的是 工资,想的是明天. 2.生意人的圈子,谈论的是项目,赚的是 利润,想的是下一年. 3.事业人的圈子,谈论的是机会,赚的是 财富,想到的是未来和保障. 4.智慧人 ...