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 ...
随机推荐
- quine
发鸠之山,其上多柘木,有鸟焉,其状如乌,文首,白喙,赤足,名曰:"精卫",其鸣自詨(音同"笑").是炎帝之少女,名曰女娃.女娃游于东海,溺而不返,故为精卫,常衔 ...
- SpringBoot配置属性之MQ
SpringBoot配置属性系列 SpringBoot配置属性之MVC SpringBoot配置属性之Server SpringBoot配置属性之DataSource SpringBoot配置属性之N ...
- 【MyBatis】MyBatis之别名typeAliases标签的使用
<configuration> <typeAliases> <typeAlias alias="Dept" type="cn.xdl.ent ...
- 安装Nginx+Tomcat
Centos下安装nginx rpm包 1 在nginx官方网站下载一个rpm包,下载地址是:http://nginx.org/packages/centos/ http://nginx.org/e ...
- 《JAVA与模式》之中介者模式(转载)
原文出处:http://blog.csdn.net/zhengzhb/article/details/7430098 定义:用一个中介者对象封装一系列的对象交互,中介者使各对象不需要显示地相互作用 ...
- 【转】TeXmacs:一个真正“所见即所得”的排版系统
TeXmacs:一个真正“所见即所得”的排版系统 好久没有推荐过自己喜欢的软件了,现在推荐一款我在美国做数学作业的私家法宝:TeXmacs.我恐怕不可能跟以前那么有闲心写个长篇的 TeXmacs 说明 ...
- Python 文件 fileno() 方法
描述 Python 文件 fileno() 方法返回一个整型的文件描述符(file descriptor FD 整型),可用于底层操作系统的 I/O 操作. 语法 fileno() 方法语法如下: f ...
- Asp.net(C#)常用正则表达式封装
using System; using System.Collections; using System.Text.RegularExpressions; namespace MSCL { //// ...
- 温故而知新:柯里化 与 bind() 的认知
什么是柯里化?科里化是把一个多参数函数转化为一个嵌套的一元函数的过程.(简单的说就是将函数的参数,变为多次入参) const curry = (fn, ...args) => fn.length ...
- update关联其他表批量更新数据-跨数据库-跨服务器Update时关联表条件更新
1.有时在做项目时会有些期初数据更新,从老系统更新到新系统.如果用程序循环从老系统付给新系统. 2.有时在项目中需要同步程序,或者自动同步程序时会有大量数据更新就可能用到如下方法了. 3.为了做分析, ...