zoukankan      html  css  js  c++  java
  • MongoDb

    http://www.mongodb.org/

    MongoDB学习笔记

    http://www.cnblogs.com/lipan/archive/2011/03/08/1966463.htm

    MongoDB深究之ObjectId
    http://www.cnblogs.com/xjk15082/archive/2011/09/18/2180792.html
    
    MongoDB aggregate() .$unwind
    http://stackoverflow.com/questions/22663706/mongodb-aggregate-unwind
    
    http://www.json.cn/
    
    python3 selenium动态获取唯品会商品 
    http://www.cnblogs.com/nima/p/5604593.html
    
    Aggregation Examples
    http://api.mongodb.com/python/current/examples/aggregation.html
    
    "D:mongodbmongodb2.6inmongod" --dbpath "D:mongodbmongodb2.6datadb"
    
    mongod --logpath "D:mongodbmongodb2.6dataloglogs.txt" --logappend --dbpath "D:mongodbmongodb2.6datadb" --directoryperdb --serviceName "MongoDB" --serviceDisplayName "MongoDB" --install
    
    返回某些字段
    db.test.find({"data.merchandiseList.items.name":"威斯汀酒店风格全棉可水洗羽丝绒矮枕74*48cm(单只装)"},{"data.merchandiseList.items.name":1})
    
    db.test.insert({names:["a","d","e","c"]});
    db.test.find({},{names:{$slice:1}}) //返回第一个
    
    返回数组中满足条件的...然而只返回了一条。。。
    db.test.find({"data.merchandiseList.items.name":"威斯汀酒店风格全棉可水洗羽丝绒矮枕74*48cm(单只装)"},{"data.merchandiseList.items.$":1})
    
    这种写法会导致全部记录返回
    db.test.find({},{"questions.questionEntry.questionItem.theQuestion" : "q1"});
    
    管道,先拆分数组,然后过滤
    db.test.aggregate([
    {$unwind:"$items"},
    {$match:{
            'items.name': /^1.5米床/
        }
    }])
    
    或者1.5米床或者全棉
    db.test.aggregate([
    {$unwind:"$items"},
    {$project:{'items.name':1,'items.sell_price':1,'items.stock':1}},
    {$match:{
           $and: [{'items.name': /[1.5米床,全棉]/},{'items.stock':'0'} ]
        }
    }
    ])
    
    1.5米床并且全棉
    db.test.aggregate([
    {$unwind:"$items"},
    {$project:{'items.name':1,'items.sell_price':1,'items.stock':1}},
    {$match:{
           'items.name': /(?=.*1.5米床)(?=.*全棉)/
        }
    }
    ])
    
    升序
    db.test.aggregate([
    {$unwind:"$items"},
    {$project:{'items.name':1,'items.show_title':1,'items.sell_price':1,'items.list_img':1}},
    {$match:{
           'items.name': /(?=.*1.5米床)(?=.*四件套)/
        }
    },
    {$sort:{'items.sell_price':1}}
    ])
    
    降序
    db.test.aggregate([
    {$unwind:"$items"},
    {$project:{'items.name':1,'items.show_title':1,'items.sell_price':1,'items.list_img':1}},
    {$match:{
           'items.name': /(?=.*1.5米床)(?=.*四件套)/
        }
    },
    {$sort:{'items.sell_price':-1}}
    ])
    
    db.test2.aggregate([
    {$unwind:"$data.merchandiseList.items"},
    {$project:{'data.merchandiseList.items.name':1,'data.merchandiseList.items.show_title':1,'data.merchandiseList.items.sell_price':1,'data.merchandiseList.items.list_img':1}},
    {$match:{
           'data.merchandiseList.items.name': /^1.5/
        }
    },
    {$sort:{'data.merchandiseList.items.sell_price':-1}}
    ])
    
    
    db.test2.aggregate([
    {$unwind:"$data.merchandiseList.items"},
    {$project:{'_id':0,'data.merchandiseList.items.name':1,'data.merchandiseList.items.show_title':1,'data.merchandiseList.items.sell_price':1,'data.merchandiseList.items.list_img':1}},
    {$match:{
           'data.merchandiseList.items.name': /(?=.*1.5)(?=.*贡缎)/
        }
    },
    {$sort:{'data.merchandiseList.items.sell_price':-1}}
    ])
    等同于
    db.test2.aggregate([
    {"$unwind":"$data.merchandiseList.items"},
    {"$project":{'_id':0,'data.merchandiseList.items.id':1,'data.merchandiseList.items.brand_name':1,'data.merchandiseList.items.detail_url':1
        ,'data.merchandiseList.items.show_title':1,'data.merchandiseList.items.sell_price':1,'data.merchandiseList.items.list_img':1}},
    {"$match":{
           'data.merchandiseList.items.show_title': /(?=.*1.5)(?=.*贡缎)/
        }
    },
    {"$sort":{'data.merchandiseList.items.sell_price':-1}}
    ])
    
    1.pymongo
    pprint.pprint(db.test2.find_one())
    
    2.mongodb存储过程
    http://www.cnblogs.com/greenteaone/p/5175859.html
    
    db.system.js.find();
    db.system.js.save({_id:"getCount",value:function(){return db.test2.count();},description:'获取课程数'});
    db.eval("getCount()");
    
    db.system.js.save({_id:"getTest2",value:function(str){
        // str = "/(?=.*1.5)(?=.*贡缎)/";
         result =  db.test2.aggregate([
    {"$unwind":"$data.merchandiseList.items"},
    {"$project":{'_id':0,'data.merchandiseList.items.id':1,'data.merchandiseList.items.brand_name':1,'data.merchandiseList.items.detail_url':1
        ,'data.merchandiseList.items.show_title':1,'data.merchandiseList.items.sell_price':1,'data.merchandiseList.items.list_img':1}},
    {"$match":{
           'data.merchandiseList.items.show_title': "/(?=.*1.5)(?=.*贡缎)/"
        }
    },
    {"$sort":{'data.merchandiseList.items.sell_price':-1}}
    ]); 
    return result;
    },description:'获取商品'});
    
    3.db.test3.remove()
      remove needs a query
      
      db.test3.drop()
      db.test3.remove({})
      
    4.distinct  不能多个字段
      The first argument to the distinct command must be a string but was a undefined 
      correct:
      db.test3.distinct('data.merchandiseList.items.show_title')
      wrong:
      db.test3.distinct({'data.merchandiseList.items.id','data.merchandiseList.items.show_title'})
    
      
    db.system.js.save({_id:"getTest",value:function(str){
        // str = "/(?=.*1.5)(?=.*贡缎)/";
        var rst = db.test2.aggregate([
    {"$unwind":"$data.merchandiseList.items"},
    {"$project":{'_id':0,'data.merchandiseList.items.id': 1,'data.merchandiseList.items.brand_name':1,'data.merchandiseList.items.detail_url':1
        ,'data.merchandiseList.items.show_title':1,'data.merchandiseList.items.sell_price':1,'data.merchandiseList.items.list_img':1}},
    {"$match":{
           'data.merchandiseList.items.show_title': /(?=.*1.5)(?=.*贡缎)/
        }
    },
    {"$sort":{'data.merchandiseList.items.sell_price':-1}}
    ]);
    var addRecord = function(value){ //print(value.data.merchandiseList.items.sell_price); 
        if(db.test3.find({'id':value.data.merchandiseList.items.id,'sell_price':value.data.merchandiseList.items.sell_price}).count()==0)
        db.test3.insert({'id':value.data.merchandiseList.items.id,'brand_name':value.data.merchandiseList.items.brand_name,'detail_url':value.data.merchandiseList.items.detail_url
            ,'show_title':value.data.merchandiseList.items.show_title,'sell_price':value.data.merchandiseList.items.sell_price,'list_img':value.data.merchandiseList.items.list_img}); 
        }
    db.test3.drop()    
    rst.forEach(addRecord)
    return db.test3.find();
    },description:'获取商品'});
  • 相关阅读:
    linux常用命令
    mysql 开发基础系列20 事务控制和锁定语句(上)
    sql server 性能调优之 资源等待 CXPACKET
    mysql 开发基础系列19 触发器
    mysql 开发基础系列18 存储过程和函数(下)
    mysql 开发基础系列17 存储过程和函数(上)
    sql server 性能调优之 资源等待PAGEIOLATCH
    mysql 开发基础系列16 视图
    mysql 开发基础系列15 索引的设计和使用
    sql server 性能调优之 当前用户请求分析 (1)
  • 原文地址:https://www.cnblogs.com/sui84/p/6777166.html
Copyright © 2011-2022 走看看