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:'获取商品'});
  • 相关阅读:
    非常简洁的js图片轮播
    js广告图片轮播
    图片轮播
    分享到QQ空间、新浪微博、腾讯微博和人人网
    五星简单操作
    Struts2 多文件上传
    CSS3实践之路(六):CSS3的过渡效果(transition)与动画(animation)
    JavaScript中的数据类型
    JavaScript中对象是否需要加引号?
    变量提升(hoisting)
  • 原文地址:https://www.cnblogs.com/sui84/p/6777166.html
Copyright © 2011-2022 走看看