Я занимаюсь разработкой приложения django для Python и mongoDB. Я разрабатываю форму и принимаю пользовательские данные и сохраняю их в БД.
Перед вставкой я хочу проверить, есть ли данные в базе данных.
У меня есть коллекция монго, которая выглядит примерно так:
coll_1:
{ "_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
Если пользователь новый пользователь, вставьте непосредственно в базу данных.
Если вы старый пользователь, проверьте, присутствуют ли введенные пользователем города в БД, если нет, то обновите БД, иначе выведите сообщение в html с сообщением о том, что город уже присутствует в БД.
Скажите, что мой ввод выглядит примерно так:
Name: PQR
City_list : PN-City4, PN-City12
LDE: LDE-6767
Мой код, как показано ниже:
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 - это строка
Может кто-нибудь, пожалуйста, помогите мне с этим