我正在开发一个使用python和mongoDB的django应用程序。我正在开发一个表单,接受用户输入并保存到数据库。 在插入之前,我想检查数据库是否已经存在数据。在
我有一个mongo系列,看起来像下面这样:
第一组:
{ "_id" : ObjectId("56e0a3a2d59feaa43fba49d5"), "timestamp" : ISODate("2017-11-18T10:23:29.620Z"), "City_list" : "[PN-City1, PN-City2,PN-City3, PN-City4]", "LDE" : "LDE-1234, LDE-345, LDE-456" , "Name": "ABC"}
{ "_id" : ObjectId("56e0a3a2d59feaa43fba49d6"), "timestamp" : ISODate("2016-12-18T10:23:29.620Z"), "City_list" : "[PN-City4, PN-City5,PN-City6,PN- City7]", "LDE" : "LDE-444, LDE-3445, LDE-456", "Name": "BCD"}
{ "_id" : ObjectId("56e0a3a2d59feaa43fd67873"), "timestamp" : ISODate("2016-12-18T10:23:29.620Z"), "City_list" : "[PN-City1, PN-City6,PN-City9,PN- City10]", "LDE" : "LDE-444, LDE-3445, LDE-456", "Name": "XYZ"}
我有一个表单,从中输入用户输入:名称、城市(一个或多个逗号分隔)、LDE(逗号分隔)
在我的脚本中,我想在插入mongodb之前进行检查 如果用户是新用户,则直接插入db。 如果是老用户,请检查用户输入的城市是否已经存在于数据库中,如果不更新数据库,则向html中抛出一条消息,说明城市已经存在于数据库中。在
假设我的输入是这样的:
^{pr2}$我的代码如下:
if 'Name' in pdata and ('city_list' in pdata and re.match("(PN-\w*-\d)(PN-\w*-\d)*", pdata['city_list'])):
user_input = pdata['city_list'].split(",")
pname = pdata['Name']
for data in user_input:
if db.coll_1.find({"Name": pname , 'City_list': { "$in": data}})
这是在给我错误。在
我如何实现这一点
我试过这样的方法:
for data in user_input:
data = str(data) # it was taking as unicode
if (db.coll_1.find({"Name": pname , 'City_list': { "$in": data}}).count() > 0):
Gives error : OperationFailure: $in needs an array
CIty_list是一个字符串
有人能帮我吗
目前没有回答
相关问题 更多 >
编程相关推荐