最简单的使用GridFS的方法就是使用mongofiles
mongofiles内置的MongoDB中,可以用来在GridFS中上传、下载、列示、查找和删除文件
把文件存入GridFS
mongo put fileName列出GridFS内文件
mongo list从GridFS内将文件写入文件系统
mongo get fileName根据文件名查找文件
mongo search fileName删除文件
mongo delete fileNamedb.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 1 2017-05-06T09:01:03.550+0800 I - [js] Sat May 06 2017 09:01:03 GMT+0800 WARNx is greater than 2参数顺序必须先是 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" }