mongo脚本
‘壹’ 怎样在linux的shell脚本中连接mongodb插入
1、想在shell中连接数据库,首先要在连接数据的机器上安装mongodb的客户端才可以。客户端的安装在这里不再重复,自己网络一下有教程的。 连接mongodb的命令如下: /home/test/mongodb/mongodb-2.2.3/bin/mongo 127.0.0.1:8888 这个是数据库配置,没有设置用户名密码,所以直接通过该命令就可以连接。 连接后会有一个默认连接的数据库。 2、mongodb常用命令: 查看数据库命令: show dbs; 查看集合命令: show collections; 切换数据库: use databaseName; 查询数据: db.集合名.find() 插入数据: db.集合名.insert({name:'test',age:1}); 删除: db.test.remove(); 3、如果想通过shell脚本实现一个日志分析并入库的操作,命令如下: sql="db.test.insert({name:'test',age:1});"//定义执行的sqlecho "$sql"/home/test/mongodb/mongodb-2.2.3/bin/mongo 127.0.0.1:8888/test --shell 注意,echo命令中的格式必须这样写,管线命令后面的是是数据库安装地址 然后是ip:端口号,斜线后是数据库名称,--shell表示通过shell交互
‘贰’ 怎么用js脚本操作mongodb
nodejs操作mongodb查询所有数据的方法:
var
mongoclient
=
require('mongodb').mongoclient;
var
db_conn_str
=
'mongodb://localhost:27017/wilsondb1';
var
selectdata
=
function(db,
callback)
{
//连接到表
var
collection
=
db.collection('tb2');
//查询数据
var
wherestr
=
{"name":'wilson001'};
collection.find(wherestr).toarray(function(err,
result)
{
if(err)
{
console.log('error:'+
err);
return;
}
callback(result);
});
}
mongoclient.connect(db_conn_str,
function(err,
db)
{
console.log("连接成功!");
selectdata(db,
function(result)
{
console.log(result);
db.close();
});
});
‘叁’ (shell脚本)特殊分隔符文本文件导入MongoDB
本篇文章简单介绍如何将文本数据使用shell脚本导入MongoDB。
过程如下:
${str//'!^'/','} 字符替换,将 !^ 替换为 , ;
< 表示从一个文件读内容;
> 表示将内容写进一个文件,如果该文件不存在,会自动新建该文件,因此该操作会覆盖文件之前内容;
>> 同 > ,追加模式,但是该操作不会覆盖之前文件内容。
该脚本使用awk将数据转为json格式,尝试使用 -F '!^' 做为分割符时,数据处理出现丢失,错误的现象,使用 -F ',' 时,数据无误。
本次处理的文本数据分割符为特殊分割符 !^ ,因此将分隔符替换为 , 。
-vq=' " ' 设置一个变量 q = " 。
function··· 为数据处理过程,格式化为json。
EOF 之间可以执行mongo的任意操作命令。
此处删除了集合名为 ${txt_name} 的集合(无论该集合是否存在,该操作不会影响脚本执行)。
mongoimport 将文件数据导入MongoDB,文件可以为 json 或 csv 格式,此处使用的是json文件。
rm -rf file 强制删除文件 file
rm shell 删除文件(夹)的命令
-rf 该参数表示不询问,强制删除,重要文件删除,不推荐使用该参数。