zoukankan      html  css  js  c++  java
  • [MongoDB] Query, update, index and group

    /*
        1. Query Operators
    */
    db.posts.find({
        viewsCount: {$get: 1000, $lte: 3000}
    }, {_id: 0, viewsCount: 1, title: 1})
    
    // $in
    db.posts.find({
        categories: {$in: ['ios']}
    }, {categories: 1})
    
    //$where
    db.posts.find({
        $where: function(){
            return this.categories.length>15
        }
    }, {categories: 1, title: 1})
    
    //see how many categories from previous query:
    db.posts.find({
        $where: function(){
            return this.categories.length>15
        }
    }, {categories: 1, title: 1})[0].categories.length

    Update:

    /*
        2. Update
    */
    var d = db.posts.findOne();
    //change the author email:
    d.author.email = "new@new.com"
    //update the database
    db.post.update({_id: d._id}, d);
    
    
    //update mutli-document
    db.posts.update({viewsCount: {$gt: 3000}}, {$set: {newKey: true}}, {multi:true}) //add new key, set mutli

    Performance and indexes:

    /*
        3. Performance and indexes
    */
    //create the data
    db.numbers.drop();
    var num = 5000000,
    i = 0;
     for(i = 0; i < num; i ++){
        var randomNumber = Math.floor(Math.random()*10000);
        db.numbers.insert({number:randomNumber});
        //print(i);
     }
    
    db.number.find({number: {$gt: 1000, $lt: 3000}, {_id: 0, number: 1}}).explain(); //it scan all the doucment, took 3500ms
     
    //add index:
    db.numbers.ensureIndex({number: 1});
    //took 1046 ms, scan 1m instead of 5m 

    Group:

    /*
        4. $group
    */
    
    //sum up the viewCount, rename the result as 'totalViewsCount'
    db.posts.aggregate({
        $group: {
            _id:null,
            totalViewsCount: {$sum: '$viewsCount'}
        }
    })
    
    //adding 1 for each document
    db.posts.aggregate({
        $group: {
            _id:null,
            totalNumberOfDocuments: {$sum: 1}
        }
    })
    
    // =
    db.posts.count()
  • 相关阅读:
    [SUCTF 2019]Game
    [RoarCTF2019]黄金6年
    espcms代码审计第一弹
    初识搜索
    安恒2018年三月月赛MISC蜘蛛侠呀
    [De1CTF 2019]SSRF Me
    网鼎杯 fakebook
    [0CTF 2016]piapiapia
    [RoarCTF 2019]Easy Java
    [CISCN2019 华北赛区 Day1 Web1]Dropbox
  • 原文地址:https://www.cnblogs.com/Answer1215/p/4162792.html
Copyright © 2011-2022 走看看