博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Mongodb GridFS、服务器脚本和数据库引用
阅读量:4207 次
发布时间:2019-05-26

本文共 1948 字,大约阅读时间需要 6 分钟。

1.GridFS存储大二进制文件

最简单的使用GridFS的方法就是使用mongofiles

mongofiles内置的MongoDB中,可以用来在GridFS中上传、下载、列示、查找和删除文件

把文件存入GridFS

mongo put fileName

列出GridFS内文件

mongo list

从GridFS内将文件写入文件系统

mongo get fileName

根据文件名查找文件

mongo search fileName

删除文件

mongo delete fileName

2.服务器端脚本

db.eval()用来的MongoDB的服务器端执行js脚本

db.eval("function(){ return 'helloworld'}")

使用eval的第二个参数传递js函数的参数

db.eval("function(a){ return a;}",[1])

存储js

system.js存放js变量

使用insert插入变量:

db.system.js.insert({
"_id":"x","value":1})db.system.js.insert({
"_id":"y","value":2})db.system.js.insert({
"_id":"z","value":3})db.eval("return x+y+z;")

也可以存放js代码

写日志函数log

db.system.js.insert({
"_id":"log","value": function(msg,level){
var levels = ["DEBUG","WARN","ERROR","FATAL"]; level = level ? level : 0; var now = new Date(); print(now+" "+levels[level]+msg); } })

调用方法

db.eval("x=1;log('x is ' + x);x=2;log('x is greater than 2',1);")

输出日志

2017-05-06T09:01:03.550+0800 I -        [js] Sat May 06 2017 09:01:03 GMT+0800 DEBUGx is 12017-05-06T09:01:03.550+0800 I -        [js] Sat May 06 2017 09:01:03 GMT+0800 WARNx is greater than 2

3. 数据库引用 DBRef

{"$ref":collection,"$id":id_value,"$db":db}

参数顺序必须先是

ref 引用的集合
id 引用的文档id
再是可选的db 数据库

exp:

users集合:

db.users.insert([    {
"_id":"mike","display_name":"MIKE_d"}, {
"_id":"kritina","display_name":"KRISTINA"}])

notes集合:

db.notes.insert([    {
"_id":5,"author":"mike","text":"hello,i'm mike"}, {
"_id":20,"author":"kritina","text":"O ever youthful,O ever weeping!","reference":[ {
"$ref":"users","$id":"mike"}, {
"$ref":"notes","$id":5} ]}])
var note = db.notes.findOne({
"_id":20})note.reference.forEach(function(ref){
printjson(db[ref.$ref].findOne({
"_id":ref.$id}));})

输出:

{ "_id" : "mike", "display_name" : "MIKE_d" }{ "_id" : 5, "author" : "mike", "text" : "hello,i'm mike" }

转载地址:http://maqli.baihongyu.com/

你可能感兴趣的文章
MySQL修改root密码的4种方法
查看>>
CentOS Apache 环境+php,解决php直接输出源码
查看>>
python 安装scipy 报错:Microsoft Visual C++ 14.0 is required
查看>>
python 报错Microsoft Visual C++ 14.0 is required
查看>>
requests.exceptions.TooManyRedirects: Exceeded 30 redirects.
查看>>
爬取《战狼2》电影短评论,生成图云
查看>>
linux 操作命令: cp
查看>>
adb 命令2
查看>>
matplotlib中文坐标轴和标题显示
查看>>
使用K-S检验一个数列是否服从正态分布、两个数列是否服从相同的分布
查看>>
网络传输层在网络中的地位
查看>>
网络中进程通信的标识
查看>>
TCP与UDP的区别
查看>>
ps aux tailf netstat命令
查看>>
语音信号处理-矢量量化VQ
查看>>
语音信号处理-动态时间规整DTW
查看>>
语音信号处理-HMM1
查看>>
python 多线程
查看>>
Python UnicodeEncodeError: 'gbk' codec can't encode character 解决方法
查看>>
Google 渗透工具-搜集信息
查看>>