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 ...
随机推荐
- lua lua_settable
void lua_settable (lua_State *L, int index); Does the equivalent to t[k] = v, where t is the value a ...
- 【LeetCode】210. Course Schedule II
Course Schedule II There are a total of n courses you have to take, labeled from 0 to n - 1. Some co ...
- 一些实用的php库
Idiorm – 轻量级ORM库 Snappy – 快照/PDF库 Buzz – 简单的HTTP请求库 Omnipay – 支付处理库 ShellWrap – 优美的命令行包装器
- rhel7 ifconfig command not found
同事扔过来一个rhel7.2的系统,登录后发现没有安装ifconfig命令: # ifconfig -bash: ifconfig: command not found 先看看环境变量: # echo ...
- C语言函数实现的另类方法
在前面看过那个BT的Javascript程序后,我们来看一个C语言的,相信大家还记得输出从1到1000的数最后的那个示例,本站还有很多这样的示例,如:变态的hello word,如何教新手编程,还有恐 ...
- WSAAsyncSelect模型触发不了FD_Close消息?
原帖链接: http://bbs.csdn.net/topics/330164174 楼主: Server用WSAAsyncSelect模型,Client关闭程序时(不进行shutdown与close ...
- SharePoint 2013 Step by Step—— How to Upload Multiple Documents in Document Library
How to Upload Multiple documents in SharePoint 2013,Options to add multiple files in a document libr ...
- [转]PostgreSQL教程(十六):系统视图详解
这篇文章主要介绍了PostgreSQL教程(十六):系统视图详解,本文讲解了pg_tables.pg_indexes.pg_views.pg_user.pg_roles.pg_rules.pg_set ...
- U811.1接口EAI系列之五--材料出库--VB语言
主要业务有:09其他出库单 11:材料出库单 32:销售出库单 主要业务代码: '材料出库生成XML Public Function xml_storeout(ds_head As MSHFlexGr ...
- glide 镜像
运行glide install 失败 国内墙的原因, 某些网站上不去 [ERROR]Update failed for golang.org/x/crypto: Cannot detect VCS ...