按照网上的方式下载安装mongoDB,设置环境变量。
注意后续要被连接,因此设定允许被其他设备访问,如下。
使用navicate即可连接。
由于我安装在内网上,所以没有连接到该主机路由器的网络,则不能连接。解决方法,navicat连接路由器公网ip,在路由器上设置端口转发。
movies数据在这里。
需要先把数据处理成json格式,方便批量导入数据。
import pandas as pd
df=pd.read_csv('movies.csv')
movies=[]
for index,row in df.iterrows():
movie={}
movie['movieID']=int(row['movieId'])
name=row['title'].strip()
if name[-1]==")" and name[-6]=="(":
movie['title']=name[:-7]
movie['year']=int(name[-5:-1])
else:
movie['title']=name
movie['genres']=row['genres'].split("|")
movies.append(movie)
import json
with open('movie.json','w') as f:
json.dump(movies,f)
使用mongoimport命令导入,首先需要安装,然后导入。
mongoimport -d MovieLens -c Movies --file movie.json --jsonArray
然后crud。
db.getCollection("Movies").find()
db.Movies.stats().count
db.Movies.insert({movieID:164980,title:"xx",year:2023,genres:["xx"]})
db.Movies.save({movieID:164981,title:"xx",year:2023,genres:["xx"]})
db.Movies.find({year:2023})
db.Movies.find(
{year:{$gt:2020}},
{title:1}
)
db.Movies.updateMany(
{year:2023},
{$set:{title:"xx"}}
)
db.Movies.update({movieID:164980},{movieID:164980,title:"xx"})
db.Movies.findAndModify({query: { movieID:164980},
update: { $inc: { year: 2023 } },
upsert: true })
db.Movies.remove({movieID:164980})
db.Movies.find()