MongoDB 学习笔记(一)

MongoDB 学习笔记(一)

mongodb是一种非结构化存储数据库,它的数据是以文档为基础的在本地以二进制形式进行存储(Bosn),虽然有与sql查询语句相似的方式,但与SQL语法没有任何关系,更像是一种面相对象的编程,调用函数接口。

启动方式:

1
2
3
4
# apple @ admin [12:05:48] $ mongodb //启动一个mongodb服务器(默认端口在27017),默认启动连接数据库为 /data/db 若想指定数据库,需添加参数--dbpath
例:
# apple @ admin [12:05:48] $ mongod --dbpath ~/workspace/stock/mongodb/data/db
# apple @ admin [12:05:48] $ mongo //启动一个命令行交互程序,是mongodbd的一个进程

我在使用mongodb是主要用python编程进行数据录入和处理,因此使用mongodb提供的pymongo包在程序中连接数据库进行操作
连接数据库:

1
2
3
from pymongo import MongoClient
client=MongoClient() //创建一个服务器进程,默认自动创建端口
db = client['STOCK'] //连接到数据库STOCK

常用数据库操作

增:
函数名:insert_one() 作用:用于插入一个文档 使用格式:db.get_collection(‘CollectionName’).insert_one({‘key’:’value’}) 函数名:insert_many() 作用:用于插入多个文档 使用格式:db.get_collection(‘CollectionName’).insert_many([ {‘key’: i } ]for i in range(n))

1
2
3
4
5
Acoll=db['SEquA']
Aresult=Acoll.insert_many( [ {
"ticker": SA['ticker'][i], "secShortName": SA['secShortName'][i]
}
for i in range(len(SA))])

查:
函数名:find() 作用:查找所需要的文档 使用格式:db.get_collection(‘CollectionName’).find({‘key’:’value’}) 其他使用方式查看:http://api.mongodb.com/python/current/api/pymongo/collection.html?_ga=1.224606170.1159885722.1489465777#pymongo.collection.Collection.find

1
2
3
4
5
6
7
ATicker=db.get_collection('SEquA').find( {}
, {
'ticker': 1, '_id':0
}
)

注意:find()函数查找所返回的格式是dict,关于dict对象的操作方式自行查找
改:
函数名:update() 作用:对指定文档进行更新和添加 使用格式:db.get_collection(‘CollectionName’).update({filter},{operation}, otherparameter…)

1
2
3
4
5
6
7
8
9
10
11
12
13
db.get_collection("SConC").update( {
"c_name": SConC['c_name'][i]
}
, {
"$set": {
SConC['code'][i]: {
"name": SConC['name'][i]
}
}
}
, upsert=True)
Donate comment here