zoukankan      html  css  js  c++  java
  • mongodb学习6--js操作mongodb

    一,mongo知识储备:
    1. 获取mongoDB中数据库的大小命令
    use databasename
    db.stats()
    显示信息如下

    > db.stats()
    {
    "collections" : 3,
    "objects" : 80614,
    "dataSize" : 21069700,
    "storageSize" : 39845376,
    "numExtents" : 9,
    "indexes" : 2,
    "indexSize" : 6012928,
    "ok" : 1
    }

    其中storage表示的就是数据库的大小,显示出的数字的单位是字节,因此如果需要转换单位为KB需要除以1024


    2. 获取MongoDB中collection

    db.collection.dataSize()
    //collection中的数据大小
    db.collection.storageSize()
    //为collection分配的空间大小,包括未使用的空间
    db.collection.totalIndexSize()
    collection中索引数据大小
    db.collection.totalSize()
    collection中索引+data所占空间

    二,js操作实例:

    1,遍历一个mongo库下所有的表

    // 获取一个collection下所有的表,并进行操作
    var
    today = new Date(); var beforeday = new Date(today.valueOf()-24*3600*1000*2); var beforedate = beforeday.getFullYear()*10000+(beforeday.getMonth()+1)*100+beforeday.getDate(); print(beforedate+'==============clean==========') //前天日期 conn = new Mongo(); db = conn.getDB("collection1"); //选择数据库 lists = db.getCollectionNames(); for(i in lists){ if(lists[i].substr(0,9) == 'sendclick'){ print(lists[i]+"-----"+db[lists[i]].count()) db[lists[i]].remove({cd:{$lte:beforedate}}) } } for(i in lists){ if(lists[i].substr(0,9) == 'sendclick' && db[lists[i]].count() == 0){ print(lists[i]+"----drop---"+db[lists[i]].count()) db[lists[i]].drop() } }


    2,处理遍历输出结果

    db.table1.group({key:{xxx:1},cond:{cd:20160524},reduce:function(obj,prev){prev.cnum++},initial:{cnum:0}}).forEach(
        function(x){
            db.table2.insert(x)
        }
    )
    db.table3.group({key:{xxx:1},cond:{cd:20160601,cid:"xxxxxxxxx"},reduce:function(obj,prev){prev.cnum++},initial:{cnum:0}}).forEach(
        function(x){
            if(x.cnum > 3){
                y = {}; 
                y._id = x.xxx;
                y.cd = x.cd;
                db.table4.insert(y);
                print(x.xxx);
                print(x.cnum);
            }
        }
    )

    在linux环境之下js脚本

    >mongo clean.js

  • 相关阅读:
    将 SharePoint 2010 网站集升级到 2013 (含沙盒方案)
    几款网络云存储服务的使用对比
    技术发展飞快,一日十年
    项目背景介绍
    初次接触,简单的了解需求
    用色彩区分 SharePoint 2010 Calendar 的日历项
    嘿,我这里有一个 Survey!
    博客页面在 IE 浏览器中样式混乱了(已经更换了样式)
    关于 Graphviz
    搭建使用 RTX51Tiny 的 C51 Keil 项目环境
  • 原文地址:https://www.cnblogs.com/zhangyabin---acm/p/5919659.html
Copyright © 2011-2022 走看看