MongoDb学习
发布日期:2021-05-13 04:45:36 浏览次数:15 分类:博客文章

本文共 43961 字,大约阅读时间需要 146 分钟。

MongoDB���������������������������������������������������������������

1������������

MongoDB������������������������document-oriented������������������������������������������������ ���������������������������������������������������������������������������������������������������������������������������������������������������������������������row������������������������������������������������������������document������������ ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������predefined schema���������������������key������������value������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

2���������������

���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������T������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MongoDB���������������������������������������������������������������������������������������������������������������������������MongoDB���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MongoDB���������������������������������������������������

3������������������

MongoDB���������������������������������������������������������������������������������������������������������������������������������������������#1���������������������������������������������������������������������������������������������������������������������������������������#2������������������������������������������������������������������������������������������������������������������#3������������������������������������������������������������������������������������������������������������������������session���������������MongoDB���������������������������������������������������������������������#4���������������������������������������������������������������������������������������������MongoDB������������������������������������������������������������������������join���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

4������������������

MongoDB���������������������������������������������������������������������������MongoDB������������MongoDB������������������������������������cache������������������������������������������������������������������������������������������������������������������MongoDB������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MongoDB������������������������������������������

��� MongoDB������������

 

1������������MongoDB���������������������������������������������������������{'msg':'hello','foo':3}������������python���������������������

���������������������#1������������������/���������������������#2���������������������������������������������������������������������������������������������������������������������������������������������)���#3���MongoDB���������������������������#4���MongoDB���������������������������������#5������������������������������������������������������������������������������������������������������������������������������������������������������������������������������UTF-8���������������������������������#1������������������\0 (���������)������������������������������������������#2���.���$������������������������������������������������������������#3���������������"_"������������������������(���������������������)���

2���������������������������������������MongoDB������������������������������������������������������������������������������������������������

#1������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#2������������������������������������������.������������������������������������������������������������������������������������������������������������������������blog.posts���blog.authors���������������������������������������������������blog���������������������������������������������������������������������������������������������MongoDB���������������������������������������������������������������#3������������������������������������������������������������������������������������������������������������""������������������������\0������������������)������������������������������������������������������������"system."���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������$���

 3������������������MongoDB������������������������������������������������������������������

������������������������������������������������������������������������������������UTF-8������������#1���������������������������"")���#2���������������' '���������)���.���$���/���\���\0 (���������)���#3���������������������#4���������64���������������������������������������������������������������������������������������������������#1���admin��� ���������������������������������������root���������������������������������������������admin������������������������������������������������������������������������������������������������������������������������admin������������������������������������������������������������#2���local: ������������������������������������������������������������������������������������������������������������������������#3���config: MongoDB������������������������������������������������config������������

4���������������������������������������������������������������������������������������������������

��������� ���������������cms���������������blog.posts������������������������������������������cmd.blog.posts������������������������������������121���������������������������������������������100���������

��� ������

1���������

#1������������������D:\MongoDB������D:\MongoDB\bin������������������������#2������������������������D:\MongoDB\data\dbD:\MongoDB\log\mongod.log#3���������������������mongod.cfg,���������https://docs.mongodb.com/manual/reference/configuration-options/systemLog:   destination: file   path: "D:\MongoDB\log\mongod.log"   logAppend: truestorage:   journal:      enabled: true   dbPath: "D:\MongoDB\data\db"net:   bindIp: 0.0.0.0   port: 27017setParameter:   enableLocalhostAuthBypass: false    #4���������������������mongod --config "D:\MongoDB\mongod.cfg" --bind_ip 0.0.0.0 --install������������������������������������mongod --bind_ip 0.0.0.0 --port 27017 --logpath D:\MongoDB\log\mongod.log --logappend --dbpath D:\MongoDB\data\db  --serviceName "MongoDB" --serviceDisplayName "MongoDB"  --install#5���������\������net start MongoDBnet stop MongoDB#6���������mongo���������http://www.runoob.com/mongodb/mongodb-window-install.html
������������

2���������������

#���������������https://docs.mongodb.com/master/tutorial/enable-authentication/#1���������������use admindb.createUser(  {    user: "root",    pwd: "123",    roles: [ { role: "root", db: "admin" } ]  })use testdb.createUser(  {    user: "egon",    pwd: "123",    roles: [ { role: "readWrite", db: "test" },             { role: "read", db: "db1" } ]  })#2������������������mongod --removemongod --config "C:\mongodb\mongod.cfg" --bind_ip 0.0.0.0 --install --auth#3������������������������������������������������mongo --port 27017 -u "root" -p "123" --authenticationDatabase "admin"���������������������������db.auth("������","������")������mongouse admindb.auth("root","123")#������������:https://www.cnblogs.com/zhoujinyi/p/4610050.html
������������������+������������������

3������������shell

#1���mongo 127.0.0.1:27017/config #������������������������config#2���mongo --nodb #���������������������������#3������������������������������������new Mongo(hostname)���������������������������������mongod������> conn=new Mongo('127.0.0.1:27017')connection to 127.0.0.1:27017> db=conn.getDB('admin')admin#4���help������������#5���mongo������������������JavaScript shell������������������JavaScript���������

��� ������������������

1������������������MongoDB������������Javascript������������������������������������������������JSON���JSON���http://www.json.org���������������������������������������������������������������������������������������������������������������������������������������������������������

2���������������������������������������������������������������������������������������������������������������null������������������������������������������������������������������������������JSON������������������������������������

3���������JSON���������������������������������������������������������������������������������������������������������������������������������������������������������������������JSON������������������������������������������������������������������������������JSON������������������������������������������������������������������������32������64���������������JSON���������������������������������������������������������������������

4���MongoDB������������JSON���������/���������������������������������������������������������������������������������������������������������������������������������������������������������MongoDB���������������������������������������������������������������������

#1���null���������������������������������������d={'x':null}#2���������������true���falsed={'x':true,'y':false}#3���������d={'x':3,'y':3.1415926}#4������������d={'x':'egon'}#5���������d={'x':new Date()}d.x.getHours()#6������������������d={'pattern':/^egon.*?nb$/i}���������������������������������i������:i ���������������m ������������������x ������������������������������s ������������������#7���������d={'x':[1,'a','v']}#8���������������user={'name':'egon','addr':{'country':'China','city':'YT'}}user.addr.country#9���������id:���������12���������ID,������������������������������������d={'x':ObjectId()}
View Code

5���_id���ObjectId

MongoDB���������������������������������"_id"���������������������������������������������������������ObjectId������������������������������������������������������������_id���,���������������������������������������������������������������"_id"���������������������������������������"_id"������������������#1���ObjectIdObjectId���"_id"������������������������������MongoDb���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MongoDB������ObjectId������������ObjectId������12������������������������������������24���������������������������������������    0|1|2|3|   4|5|6|     7|8    9|10|11        ���������      ������      PID    ���������������������������������ObjectId���������������������������������������������������������������������������������������������������������������������������������������������ObjectId���������������������������������������������������������������������5������������������������������������������������������������4������������������������������������������������������������������������������������������������������ObjectId������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������3������������������������������������������������������������������������������������������������������������������������������������ObjectId���������������������������������������������������������������������������������������������������ObjectId���������������9���������������������������������������������������������������ObjectId���������������������3��������������������������������� ���������������������������������������������������ObjectId���������������������#2���������������_id���������������������������"_id"������������������������������ ������������������MongoDb������������������������������������������������������������������������������������������������������������MongoDb���������������������������������������������������������������������������������������������������������������������������������������MongoDB������������������������������������������������������������������������������������������������������������������������������������������������������������������
View Code

��� CRUD������

1������������������

#1������use config #���������������������������������������������������������������������������������#2������show dbs #������������������������������������������������������config��������������������������������� ������������������������������config������������������������������db.table1.insert({'a':1})#3������use config #���������������������������db.dropDatabase() #���������������

2���������������

#1���������������������������������������������������������> use database1switched to db database1> db.table1.insert({'a':1})WriteResult({ "nInserted" : 1 })> db.table2.insert({'b':2})WriteResult({ "nInserted" : 1 })#2������> show tablestable1table2#3������> db.table1.drop()true> show tablestable2

3���������������

���

#1���������������_id���������ObjectId,_id���������������������������������������#2���������������user0={    "name":"egon",    "age":10,    'hobbies':['music','read','dancing'],    'addr':{        'country':'China',        'city':'BJ'    }}db.test.insert(user0)db.test.find()#3���������������user1={    "_id":1,    "name":"alex",    "age":10,    'hobbies':['music','read','dancing'],    'addr':{        'country':'China',        'city':'weifang'    }}user2={    "_id":2,    "name":"wupeiqi",    "age":20,    'hobbies':['music','read','run'],    'addr':{        'country':'China',        'city':'hebei'    }}user3={    "_id":3,    "name":"yuanhao",    "age":30,    'hobbies':['music','drink'],    'addr':{        'country':'China',        'city':'heibei'    }}user4={    "_id":4,    "name":"jingliyang",    "age":40,    'hobbies':['music','read','dancing','tea'],    'addr':{        'country':'China',        'city':'BJ'    }}user5={    "_id":5,    "name":"jinxin",    "age":50,    'hobbies':['music','read',],    'addr':{        'country':'China',        'city':'henan'    }}db.user.insertMany([user1,user2,user3,user4,user5])
���������������������������

���

# SQL���=,!=,>,<,>=,<=# MongoDB���{key:value}������������������������,"$ne","$gt","$lt","gte","lte",������"$ne"���������������������������#1���select * from db1.user where name = "alex";db.user.find({'name':'alex'})#2���select * from db1.user where name != "alex";db.user.find({'name':{"$ne":'alex'}})#3���select * from db1.user where id > 2;db.user.find({'_id':{'$gt':2}})#4���select * from db1.user where id < 3;db.user.find({'_id':{'$lt':3}})#5���select * from db1.user where id >= 2;db.user.find({"_id":{"$gte":2,}})#6���select * from db1.user where id <= 2;db.user.find({"_id":{"$lte":2}})
������������
# SQL���and���or���not# MongoDB������������������������������������������and���������"$or"���������������[]���,"$not"#1���select * from db1.user where id >= 2 and id < 4;db.user.find({'_id':{"$gte":2,"$lt":4}})#2���select * from db1.user where id >= 2 and age < 40;db.user.find({"_id":{"$gte":2},"age":{"$lt":40}})#3���select * from db1.user where id >= 5 or name = "alex";db.user.find({    "$or":[        {'_id':{"$gte":5}},        {"name":"alex"}        ]})#4���select * from db1.user where id % 2=1;db.user.find({'_id':{"$mod":[2,1]}})#5������������������db.user.find({'_id':{"$not":{"$mod":[2,1]}}})
������������
# SQL���in���not in# MongoDB���"$in","$nin"#1���select * from db1.user where age in (20,30,31);db.user.find({"age":{"$in":[20,30,31]}})#2���select * from db1.user where name not in ('alex','yuanhao');db.user.find({"name":{"$nin":['alex','yuanhao']}})
������������
# SQL: regexp ������# MongoDB: /������������/i#1���select * from db1.user where name regexp '^j.*?(g|n)$';db.user.find({'name':/^j.*?(g|n)$/i})
������������
#1���select name,age from db1.user where id=3;db.user.find({'_id':3},{'_id':0,'name':1,'age':1})
������������������
#1������������dancing������������db.user.find({'hobbies':'dancing'})#2���������������dancing������������tea������������db.user.find({    'hobbies':{        "$all":['dancing','tea']        }})#3������������4������������tea������db.user.find({"hobbies.3":'tea'})#4������������������������������������db.user.find({},{'hobbies':{"$slice":-2},"age":0,"_id":0,"name":0,"addr":0})#5������������������������2���������3���������db.user.find({},{'hobbies':{"$slice":[1,2]},"age":0,"_id":0,"name":0,"addr":0})> db.blog.find().pretty(){        "_id" : 1,        "name" : "alex���������������������",        "comments" : [                {                        "name" : "egon",                        "content" : "alex���������������",                        "thumb" : 200                },                {                        "name" : "wxx",                        "content" : "���������������������",                        "thumb" : 300                },                {                        "name" : "yxx",                        "content" : "���������������������������������",                        "thumb" : 40                },                {                        "name" : "egon",                        "content" : "xxx",                        "thumb" : 0                }        ]}db.blog.find({},{'comments':{"$slice":-2}}).pretty() #������������������db.blog.find({},{'comments':{"$slice":[1,2]}}).pretty() #������1���2
������������
# ������:--1���������������-1������������db.user.find().sort({"name":1,})db.user.find().sort({"age":-1,'_id':1})
������
# ������:--limit������������������document���skip������������������������document��� db.user.find().sort({'age':1}).limit(1).skip(2)
������
# ������������db.user.count({'age':{"$gt":30}}) --������db.user.find({'age':{"$gt":30}}).count()
������������
#1���{'key':null} ������key���������null������������������keydb.t2.insert({'a':10,'b':111})db.t2.insert({'a':20})db.t2.insert({'b':null})> db.t2.find({"b":null}){ "_id" : ObjectId("5a5cc2a7c1b4645aad959e5a"), "a" : 20 }{ "_id" : ObjectId("5a5cc2a8c1b4645aad959e5b"), "b" : null }#2���������������db.user.find() #���������db.user.find({})db.user.find().pretty()#3���������������������find���������������������������������������������������db.user.findOne({"_id":{"$gt":3}})
������
help���������    ���        use db1 #���������������������������    ���        show dbs #������������        db #������    ���        db.dropDatabase()���������    ���:        db.user        db.user.info        db.user.auth    ������        show collections        show tables     ���        db.user.info.drop()���������    ���        db.user.insert({"_id":1,"name":"egon"})        user0={            "name":"egon",            "age":10,            'hobbies':['music','read','dancing'],            'addr':{                'country':'China',                'city':'BJ'            }        }        db.user.insert(user0)        db.user.insertMany([user1,user2,user3,user4,user5])        db.t1.insert({"_id":1,"a":1,"b":2,"c":3})        #������������_id������������������������_id������������������������_id        db.t1.save({"_id":1,"z":6})        db.t1.save({"_id":2,"z":6})        db.t1.save({"z":6})    ������������������=���!=,>,<,>=,<=#1���select * from db1.user where id = 3db.user.find({"_id":3})#2���select * from db1.user where id != 3db.user.find({"_id":{"$ne":3}})#3���select * from db1.user where id > 3db.user.find({"_id":{"$gt":3}})#4���select * from db1.user where age < 3db.user.find({"age":{"$lt":3}})#5���select * from db1.user where id >= 3db.user.find({"_id":{"$gte":3}})#6���select * from db1.user where id <= 3db.user.find({"_id":{"$lte":3}})#������������:$and,$or,$not#1 select * from db1.user where id >=3 and id <=4;db.user.find({"_id":{"$gte":3,"$lte":4}})#2 select * from db1.user where id >=3 and id <=4 and age >=40;db.user.find({    "_id":{"$gte":3,"$lte":4},    "age":{"$gte":40}})db.user.find({"$and":[{"_id":{"$gte":3,"$lte":4}},{"age":{"$gte":40}}]})#3 select * from db1.user where id >=0 and id <=1 or id >=4 or name = "yuanhao";db.user.find({"$or":[{"_id":{"$lte":1,"$gte":0}},{"_id":{"$gte":4}},{"name":"yuanhao"}]})#4 select * from db1.user where id % 2 = 1;db.user.find({"_id":{"$mod":[2,1]}})db.user.find({    "_id":{"$not":{"$mod":[2,1]}}})#������������:$in,$nindb.user.find({"name":{"$in":["alex","egon"]}})db.user.find({"name":{"$nin":["alex","egon"]}})#������������select * from db1.user where name regexp "^jin.*?(g|n)$";db.user.find({    "name":/^jin.*?(g|n)$/i})#������������������select name,age from db1.user where name regexp "^jin.*?(g|n)$";db.user.find({    "name":/^jin.*?(g|n)$/i},{    "_id":0,    "name":1,    "age":1})#������������������db.user.find({    "hobbies":"dancing"})db.user.find({    "hobbies":{"$all":["dancing","tea"]}})db.user.find({    "hobbies.2":"dancing"})db.user.find({},{    "_id":0,    "name":0,    "age":0,    "addr":0,    "hobbies":{"$slice":[1,2]},})db.user.find({},{    "_id":0,    "name":0,    "age":0,    "addr":0,    "hobbies":{"$slice":2},})db.user.find({    "addr.country":"China"})db.user.find().sort({"_id":1,"age":-1})db.user.find().limit(2).skip(0)db.user.find().limit(2).skip(2)db.user.find().limit(2).skip(4)db.user.find().distinct()
������

���

update() ������������������������������������������������������������db.collection.update(   
,
, { upsert:
, multi:
, writeConcern:
})���������������������update db1.t1 set name='EGON',sex='Male' where name='egon' and age=18;query : ���������where���������update : update������������������������������������������$,$inc...���������������set���������upsert : ������������������false������������������������update������������������������������������������true���������������multi : ������������������false���������������������������������������������������true,������������������������������������writeConcern :���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������
update������������
#���������������������������������_id���������������������#1������������:db.user.update({'age':20},{"name":"Wxx","hobbies_count":3})������{"_id":2,"name":"Wxx","hobbies_count":3}���������������������#2������������������������������������������������������������������������������������������������������������������������������������var obj=db.user.findOne({"_id":2})obj.username=obj.name+'SB'obj.hobbies_count++delete obj.agedb.user.update({"_id":2},obj)
���������
#���������$set������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������#1���update db1.user set  name="WXX" where id = 2db.user.update({'_id':2},{"$set":{"name":"WXX",}})#2������������������������������������{"upsert":true}db.user.update({'_id':6},{"$set":{"name":"egon","age":18}},{"upsert":true})#3���������������������������������������,{"multi":���������}db.user.update({'_id':{"$gt":4}},{"$set":{"age":28}})db.user.update({'_id':{"$gt":4}},{"$set":{"age":38}},{"multi":true})#4������������������������������������alex���������������������������������Japandb.user.update({'name':"alex"},{"$set":{"addr.country":"Japan"}})#5���������������alex������������2���������������piaodb.user.update({'name':"alex"},{"$set":{"hobbies.1":"piao"}})#6���������alex���������,$unsetdb.user.update({'name':"alex"},{"$unset":{"hobbies":""}})
���������$set
#������������������$inc#1������������������������������db.user.update({},    {        "$inc":{"age":1}    },    {        "multi":true    }    )#2������������������������5���db.user.update({},    {        "$inc":{"age":-5}    },    {        "multi":true    }    )
������������������$inc
#���������������������������    ������������������������:$push#1���������������yuanhao������������������������readdb.user.update({"name":"yuanhao"},{"$push":{"hobbies":"read"}})#2���������������yuanhao������������������������������tea���dancingdb.user.update({"name":"yuanhao"},{"$push":{    "hobbies":{"$each":["tea","dancing"]}}})������������������������������������������������������$pop#3���{"$pop":{"key":1}} ���������������������������������db.user.update({"name":"yuanhao"},{"$pop":{    "hobbies":1}})#4���{"$pop":{"key":-1}} ���������������db.user.update({"name":"yuanhao"},{"$pop":{    "hobbies":-1}})#5���������������������������,���"$pull" ������������������������������������$pop������������������db.user.update({'addr.country':"China"},{"$pull":{    "hobbies":"read"}},{    "multi":true})
������������������������������$push,$pop,$pull
#���������������������"$addToSet"db.urls.insert({"_id":1,"urls":[]})db.urls.update({"_id":1},{"$addToSet":{"urls":'http://www.baidu.com'}})db.urls.update({"_id":1},{"$addToSet":{"urls":'http://www.baidu.com'}})db.urls.update({"_id":1},{"$addToSet":{"urls":'http://www.baidu.com'}})db.urls.update({"_id":1},{    "$addToSet":{        "urls":{        "$each":[            'http://www.baidu.com',            'http://www.baidu.com',            'http://www.xxxx.com'            ]            }        }    })
���������������������"$addToSet"
#1������������������������"$slice"���������������n���db.user.update({"_id":5},{    "$push":{"hobbies":{        "$each":["read",'music','dancing'],        "$slice":-2    }    }})#2������������������The $sort element value must be either 1 or -1"db.user.update({"_id":5},{    "$push":{"hobbies":{        "$each":["read",'music','dancing'],        "$slice":-1,        "$sort":-1    }    }})#���������������������"$slice"������"$sort"���"$push"������������������������������"$eah"
������

���

#1������������������������������db.user.deleteOne({ 'age': 8 })#2������������������China���������db.user.deleteMany( {'addr.country': 'China'} ) #3���������������db.user.deleteMany({})
View Code

4���������

���������������������������MongoDB������������������������������������������������������������������������������������������������������������������������������������MongoDB������������������������������#1���������������#2���MapReduce(������MongoDB������������)#3������������������������������count���distinct���group���(������MongoDB������������)#���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������($match)���������($project)���������($group)���������($sort)���������($limit)���������($skip)���������������������������������������������������������
from pymongo import MongoClientimport datetimeclient=MongoClient('mongodb://root:123@localhost:27017')table=client['db1']['emp']# table.drop()l=[('egon','male',18,'20170301','���������������������������������������',7300.33,401,1), #������������������('alex','male',78,'20150302','teacher',1000000.31,401,1),('wupeiqi','male',81,'20130305','teacher',8300,401,1),('yuanhao','male',73,'20140701','teacher',3500,401,1),('liwenzhou','male',28,'20121101','teacher',2100,401,1),('jingliyang','female',18,'20110211','teacher',9000,401,1),('jinxin','male',18,'19000301','teacher',30000,401,1),('������','male',48,'20101111','teacher',10000,401,1),('������','female',48,'20150311','sale',3000.13,402,2),#���������������������('������','female',38,'20101101','sale',2000.35,402,2),('������','female',18,'20110312','sale',1000.37,402,2),('������','female',18,'20160513','sale',3000.29,402,2),('������','female',28,'20170127','sale',4000.33,402,2),('������','male',28,'20160311','operation',10000.13,403,3), #���������������������('���������','male',18,'19970312','operation',20000,403,3),('���������','female',18,'20130311','operation',19000,403,3),('���������','male',18,'20150411','operation',18000,403,3),('���������','female',18,'20140512','operation',17000,403,3)]for n,item in enumerate(l):    d={        "_id":n,        'name':item[0],        'sex':item[1],        'age':item[2],        'hire_date':datetime.datetime.strptime(item[3],'%Y%m%d'),        'post':item[4],        'salary':item[5]    }    table.save(d)
������������
{"$match":{"������":"������"}},���������������������������������������$gt,$lt,$in���#���1���select * from db1.emp where post='teacher';db.emp.aggregate({"$match":{"post":"teacher"}})#���2���select * from db1.emp where id > 3 group by post;  db.emp.aggregate(    {"$match":{"_id":{"$gt":3}}},    {"$group":{"_id":"$post",'avg_salary':{"$avg":"$salary"}}})#���3���select * from db1.emp where id > 3 group by post having avg(salary) > 10000;  db.emp.aggregate(    {"$match":{"_id":{"$gt":3}}},    {"$group":{"_id":"$post",'avg_salary':{"$avg":"$salary"}}},    {"$match":{"avg_salary":{"$gt":10000}}})
���������$match
{"$project":{"���������������������":1,"���������������������":0,"������������������":"���������"}}#1���select name,post,(age+1) as new_age from db1.emp;db.emp.aggregate(    {"$project":{        "name":1,        "post":1,        "new_age":{"$add":["$age",1]}        }})#2������������������������������{"$add":[expr1,expr2,...,exprN]} #������{"$subtract":[expr1,expr2]} #���������������������{"$multiply":[expr1,expr2,...,exprN]} #������{"$divide":[expr1,expr2]} #������������������������������������������������������������{"$mod":[expr1,expr2]} #���������������������������������������������������������������������#3������������������������������:$year,$month,$week,$dayOfMonth,$dayOfWeek,$dayOfYear,$hour,$minute,$second#���������select name,date_format("%Y") as hire_year from db1.empdb.emp.aggregate(    {"$project":{"name":1,"hire_year":{"$year":"$hire_date"}}})#���������������������������������������������db.emp.aggregate(    {"$project":{"name":1,"hire_period":{        "$subtract":[            {"$year":new Date()},            {"$year":"$hire_date"}        ]    }}})#4���������������������{"$substr":[���������/$���������������������������,������������,������������������]}{"$concat":[expr1,expr2,...,exprN]} #���������������������������������������������������,������������������������{"$toLower":expr}{"$toUpper":expr}db.emp.aggregate( {"$project":{"NAME":{"$toUpper":"$name"}}})#5������������������$and$or$not���������Mongodb������������
���������$project
{"$group":{"_id":������������,"���������������":���������������}}#1������������������������$group���������_id������������{"$group":{"_id":"$sex"}} #������������������{"$group":{"_id":"$post"}} #������������������{"$group":{"_id":{"state":"$state","city":"$city"}}} #���������������������������������������������������#2���������������������������,���������sql������������������������������������$sum���$avg���$max���$min���$first���$last#���1���select post,max(salary) from db1.emp group by post; db.emp.aggregate({"$group":{"_id":"$post","max_salary":{"$max":"$salary"}}})#���2���������������������������������������������db.emp.aggregate({"$group":{"_id":"$post","max_salary":{"$max":"$salary"},"min_salary":{"$min":"$salary"}}})#���3���������������������������������������$first,$last������������,������$max���$min���������db.emp.aggregate({"$group":{"_id":"$post","first_id":{"$first":"$_id"}}})#���4������������������������������db.emp.aggregate({"$group":{"_id":"$post","count":{"$sum":"$salary"}}})#���5���������������������������db.emp.aggregate({"$group":{"_id":"$post","count":{"$sum":1}}})#3������������������{"$addToSet":expr}������������{"$push":expr}���������#������������������������������������������������������:select post,group_concat(name) from db1.emp group by post;db.emp.aggregate({"$group":{"_id":"$post","names":{"$push":"$name"}}})db.emp.aggregate({"$group":{"_id":"$post","names":{"$addToSet":"$name"}}})
���������$group
{"$sort":{"���������":1,"���������":-1}} #1���������-1������{"$limit":n} {"$skip":n} #���������������������#���1������������������������������������������db.emp.aggregate({    "$group":{"_id":"$post","������������":{"$avg":"$salary"}}},{    "$sort":{"������������":-1}},{    "$limit":2})#���2���db.emp.aggregate({    "$group":{"_id":"$post","������������":{"$avg":"$salary"}}},{    "$sort":{"������������":-1}},{    "$limit":2},{    "$skip":1})
���������$sort������������$limit������������$skip
#������users���������������������{ "_id" : 1, "name" : "dave123", "q1" : true, "q2" : true }{ "_id" : 2, "name" : "dave2", "q1" : false, "q2" : false  }{ "_id" : 3, "name" : "ahn", "q1" : true, "q2" : true  }{ "_id" : 4, "name" : "li", "q1" : true, "q2" : false  }{ "_id" : 5, "name" : "annT", "q1" : false, "q2" : true  }{ "_id" : 6, "name" : "li", "q1" : true, "q2" : true  }{ "_id" : 7, "name" : "ty", "q1" : false, "q2" : true  }#������������������users���������������������3���������db.users.aggregate(   [ { $sample: { size: 3 } } ])
������������n������$sample
������$match    ������        select post from db1.emp where age > 20 group by post having avg(salary) > 10000;    #$match    #1���select post from db1.emp where age > 20    db.emp.aggregate({"$match":{"age":{"$gt":20}}})    #$group    #2���select post from db1.emp where age > 20 group by post;    db.emp.aggregate(        {"$match":{"age":{"$gt":20}}},        {"$group":{"_id":"$post"}}    )    #3���select post,avg(salary) as avg_salary from db1.emp where age > 20 group by post;    db.emp.aggregate(        {"$match":{"age":{"$gt":20}}},        {"$group":{"_id":"$post","avg_salary":{"$avg":"$salary"}}}    )    #select post from db1.emp where age > 20 group by post having avg(salary) > 10000;    db.emp.aggregate(        {"$match":{"age":{"$gt":20}}},        {"$group":{"_id":"$post","avg_salary":{"$avg":"$salary"}}},        {"$match":{"avg_salary":{"$gt":10000}}}    )������{"$project":{"���������������������":1,"���������������������":0,"������������������":"���������"}}    ���1���    db.emp.aggregate(        {"$project":{"_id":0,"name":1,"post":1,"annual_salary":{"$multiply":[12,"$salary"]}}},        {"$group":{"_id":"$post","������������":{"$avg":"$annual_salary"}}},        {"$match":{"������������":{"$gt":1000000}}},        {"$project":{"���������":"$_id","������������":1,"_id":0}}    )    ���2���    db.emp.aggregate(        {"$project":{"_id":0,"name":1,"hire_period":{"$subtract":[new Date(),"$hire_date"]}}}    )    db.emp.aggregate(        {"$project":{"_id":0,"name":1,"hire_year":{"$year":"$hire_date"}}}    )    db.emp.aggregate(        {"$project":{"_id":0,"name":1,"hire_period":{"$subtract":[{"$year":new Date()},{"$year":"$hire_date"}]}}}    )    ���3���    db.emp.aggregate(        {"$project":{"_id":0,"new_name":{"$toUpper":"$name"},}}    )    db.emp.aggregate(        {"$match":{"name":{"$ne":"egon"}}},        {"$project":{"_id":0,"new_name":{"$concat":["$name","_SB"]},}}    )    db.emp.aggregate(        {"$match":{"name":{"$ne":"egon"}}},        {"$project":{"_id":0,"new_name":{"$substr":["$name",0,3]},}}    )������{"$group":{"_id":������������,"���������������":���������������}}    #select post,max,min,sum,avg,count,group_concat from db1.emp group by post;    db.emp.aggregate(        {"$group":{            "_id":"$post",            "max_age":{"$max":"$age"},            "min_id":{"$min":"$_id"},            "avg_salary":{"$avg":"$salary"},            "sum_salary":{"$sum":"$salary"},            "count":{"$sum":1},            "names":{"$push":"$name"}            }        }    )���������������$sort������������$limit������������$skip    db.emp.aggregate(        {"$match":{"name":{"$ne":"egon"}}},        {"$project":{"_id":1,"new_name":{"$substr":["$name",0,3]},"age":1}},        {"$sort":{"age":1,"_id":-1}},        {"$skip":5},        {"$limit":5}    )# ������db.emp.aggregate({"$sample":{"size":3}})
������������
��� ���������    db.table.update(    ������,    ������������,    ������������    )    update db1.t1 set id=10 where name="egon";    db.table.update(    {},    {"age":11},    {        "multi":true,        "upsert":true    }    )    1���update db1.user set age=23,name="���������" where name="wupeiqi";    #���������    db.user.update(        {"name":"wupeiqi"},        {"age":23,"name":"���������"}    )    #������������:$set    db.user.update(        {"name":"alex"},        {"$set":{"age":73,"name":"���������-alex"}}    )    #���������    db.user.update(        {"_id":{"$gte":1,"$lte":2}},        {"$set":{"age":53,}},        {"multi":true}    )    #���������������������������    db.user.update(        {"name":"EGON"},        {"$set":{"name":"EGON","age":28,}},        {"multi":true,"upsert":true}    )    #������������������    db.user.update(        {"name":"���������-alex"},        {"$set":{"addr.country":"Japan"}}    )    #������������    db.user.update(        {"name":"���������-alex"},        {"$set":{"hobbies.1":"Piao"}}    )    #������������    db.user.update(        {"name":"���������-alex"},        {"$unset":{"hobbies":""}}    )    2���$inc    db.user.update(        {},        {"$inc":{"age":1}},        {"multi":true}    )    db.user.update(        {},        {"$inc":{"age":-10}},        {"multi":true}    )    3���$push, $pop  $pull    db.user.update(        {"name":"yuanhao"},        {"$push":{"hobbies":"tangtou"}},        {"multi":true}    )    db.user.update(        {"name":"yuanhao"},        {"$push":{"hobbies":{"$each":["������","������"]}}},        {"multi":true}    )    #���������-1������������1    db.user.update(        {"name":"yuanhao"},        {"$pop":{"hobbies":-1}},        {"multi":true}    )    db.user.update(        {"name":"yuanhao"},        {"$pop":{"hobbies":1}},        {"multi":true}    )    #������������    db.user.update(        {"name":"yuanhao"},        {"$pull":{"hobbies":"������"}},        {"multi":true}    )    #3���$addToSet    db.t3.insert({"urls":[]})    db.t3.update(        {},        {"$addToSet":{"urls":{"$each":[            "http://www.baidu.com",            "http://www.baidu.com",            "http://www.baidu.com",            "http://www.baidu.com",            "http://www.baidu.com"        ]}}},        {"multi":true}    )
������������������

 

������������

1. ������������������������������������������������2. ������������������������������������������������������3. ���������������������������������������������4. ���������������������������������������������������������������������������5. ���������������������������������������������������������������������������������6. ���������������������������������������������2���������������������������������������������������7. ���������������������������������10000���������������������������8. ���������������������������������10000���������20000���������������������������9. ������������������������������������age���������������������age���������������hire_date������������10. ���������������������������������10000���������������������������,���������������������������������11. ���������������������������������10000���������������������������,���������������������������������,������1���
1. ������������������������������������������������db.emp.aggregate({"$group":{"_id":"$post","names":{"$push":"$name"}}})2. ������������������������������������������������������db.emp.aggregate({"$group":{"_id":"$post","count":{"$sum":1}}})3. ���������������������������������������������db.emp.aggregate({"$group":{"_id":"$sex","count":{"$sum":1}}})4. ���������������������������������������������������������������������������db.emp.aggregate({"$group":{"_id":"$post","avg_salary":{"$avg":"$salary"},"max_salary":{"$max":"$salary"},"min_salary":{"$min":"$salary"}}})5. ���������������������������������������������������������������������������������db.emp.aggregate({"$group":{"_id":"$sex","avg_salary":{"$avg":"$salary"}}})6. ���������������������������������������������2���������������������������������������������������db.emp.aggregate({    "$group":{"_id":"$post","count":{"$sum":1},"names":{"$push":"$name"}}},{"$match":{"count":{"$lt":2}}},{"$project":{"_id":0,"names":1,"count":1}})7. ���������������������������������10000���������������������������db.emp.aggregate({    "$group":{"_id":"$post","avg_salary":{"$avg":"$salary"}}},{"$match":{"avg_salary":{"$gt":10000}}},{"$project":{"_id":1,"avg_salary":1}})8. ���������������������������������10000���������20000���������������������������db.emp.aggregate({    "$group":{"_id":"$post","avg_salary":{"$avg":"$salary"}}},{"$match":{"avg_salary":{"$gt":10000,"$lt":20000}}},{"$project":{"_id":1,"avg_salary":1}})9. ������������������������������������age���������������������age���������������hire_date������������db.emp.aggregate({"$sort":{"age":1,"hire_date":-1}})10. ���������������������������������10000���������������������������,���������������������������������db.emp.aggregate({    "$group":{"_id":"$post","avg_salary":{"$avg":"$salary"}}},{"$match":{"avg_salary":{"$gt":10000}}},{"$sort":{"avg_salary":1}})11. ���������������������������������10000���������������������������,���������������������������������,������1���db.emp.aggregate({    "$group":{"_id":"$post","avg_salary":{"$avg":"$salary"}}},{"$match":{"avg_salary":{"$gt":10000}}},{"$sort":{"avg_salary":-1}},{"$limit":1},{"$project":{"date":new Date,"������������":"$avg_salary","_id":0}})
View Code

��� ���������������

��� pymongo

from pymongo import MongoClient#1���������client=MongoClient('mongodb://root:123@localhost:27017/')# client = MongoClient('localhost', 27017)#2���use ���������db=client['db2'] #������������client.db1#3������������������������������print(db.collection_names(include_system_collections=False))#4���������������table_user=db['userinfo'] #������������db.user#5���������������import datetimeuser0={    "_id":1,    "name":"egon",    "birth":datetime.datetime.now(),    "age":10,    'hobbies':['music','read','dancing'],    'addr':{        'country':'China',        'city':'BJ'    }}user1={    "_id":2,    "name":"alex",    "birth":datetime.datetime.now(),    "age":10,    'hobbies':['music','read','dancing'],    'addr':{        'country':'China',        'city':'weifang'    }}# res=table_user.insert_many([user0,user1]).inserted_ids# print(res)# print(table_user.count())#6���������# from pprint import pprint#������������# pprint(table_user.find_one())# for item in table_user.find():#     pprint(item)# print(table_user.find_one({"_id":{"$gte":1},"name":'egon'}))#7���������table_user.update({'_id':1},{'name':'EGON'})#8���������������������������������������table_user.save(    {        "_id":2,        "name":'egon_xxx'    })
View Code
 

 

上一篇:Tornado 目录
下一篇:爬虫之scapy

发表评论

最新留言

第一次来,支持一个
[***.219.124.196]2025年05月01日 03时15分02秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章