zoukankan      html  css  js  c++  java
  • mongoDB(1)

    1.查询时,不写条件的查询,速度要远远大于有条件的查询。

    2.消除重复数据:

    3.db.listCommands() 查看mongo的runCommand支持哪些功能了。

    db.runCommand()  里面的参数还不一样,runCommand是非常底层的写法。

    3.1db.runCommand({distinct:"logs","key":"name"})

      > db.runCommand("distinct",{"ns":"logs","key":"name"})
      {
              "values" : [ ],
              "stats" : {
                      "n" : 0,
                      "nscanned" : 0,
                      "nscannedObjects" : 0
              },
              "ok" : 1
      }
      > db.runCommand({"distinct":"logs","key":"name"})
      {
              "values" : [
                      "jj"
              ],
              "stats" : {
                      "n" : 1,
                      "nscanned" : 1,
                      "nscannedObjects" : 0,
                      "timems" : 70,
                      "cursor" : "BtreeCursor name_1"
              },
              "ok" : 1
      }

    3.2db.runCommand({dropIndexes:'foo', index : {y:1}})//删除集合foo中{y:1}的索引 ,在用mongoose的时候,执行这条命令,就可以删除索引.

    3.3db.runCommand({dropIndexes:'foo', index : '*'})//删除集合foo中所有的索引

    重建索引

    db.myCollection.reIndex()
    // same as:
    db.runCommand( { reIndex : 'myCollection' } )

    去除重复

    db.runCommand('distinct':"myCollection","key":"name")

    mongoose可直接使用Query#distinct([criteria], [field], [callback])

    YourModel.db.db.executeDbCommand({geoNear : "locations", near : [11.252,14.141], spherical: true }, function(err,res) { console.log(res.documents[0].results)});

    mongoose,来执行runCommand命令,参考网址:http://stackoverflow.com/questions/5861134/how-to-execute-runcommand-with-mongoose

    4.group 分组操作

    4.1 db.runCommand({'group':{

        "ns":"students",

        "key":{"age":true},

       "initial":{"count":0},

       "condition":{"age":{"$gte":19}},   //分组条件

       "$reduce":function(doc,prev){        print(doc,prev)

             }

     }

    })

    在mongoose中直接使用aggregate聚合的方法,在里面搭配group分组。

    Users.aggregate()
      .group({ _id: null, maxBalance: { $max: '$balance' } })
      .select('-id maxBalance')
      .exec(function (err, res) {
        if (err) return handleError(err);
        console.log(res); // [ { maxBalance: 98 } ]
    });


    如果计算平均值,那么使用group就很难实现了。
  • 相关阅读:
    hdu 4612 Warm up 双连通缩点+树的直径
    Hadoop-04-HBase全然分布式环境搭建
    java实现的Trie树数据结构
    Sharpui企业版-简单介绍【01】 【QQ群:206378966】
    Apache Mina开发手冊之四
    POJ训练计划1459_Power Network(网络流最大流/Dinic)
    svn+ssh
    Android首席设计师宣称移动概念已死,开发人员应该面向屏幕编写应用而非移动
    连锁快餐企业软件的一些管理
    多进程解决datasnap支持的tcp长连接数量少的问题
  • 原文地址:https://www.cnblogs.com/jay--zhang/p/5990158.html
Copyright © 2011-2022 走看看