Python 在pycharm中使用或子句mongodb时出错
我在我的项目中使用mongodb是为了保存和检索数据,但当我在其中使用$or时,pycharm在$or处显示错误(用红色下划线),并说语句expected、found或_关键字 在mongo shell中使用相同的代码时,我能够得到结果,因此请帮助我,我的代码如下所示Python 在pycharm中使用或子句mongodb时出错,python,mongodb,pycharm,Python,Mongodb,Pycharm,我在我的项目中使用mongodb是为了保存和检索数据,但当我在其中使用$or时,pycharm在$or处显示错误(用红色下划线),并说语句expected、found或_关键字 在mongo shell中使用相同的代码时,我能够得到结果,因此请帮助我,我的代码如下所示 import bottle import pymongo class GuestbookDAO(object): def __init__(self, database): self.db = data
import bottle
import pymongo
class GuestbookDAO(object):
def __init__(self, database):
self.db = database
self.details = database.details
def find_names(self):
full_detail = []
for each_detail in self.details.find():
full_detail.append({'baseurl': each_detail['baseurl'], 'campaignsource': each_detail['campaignsource'],
'campaignmedium': each_detail['campaignmedium'], 'campaignterm': each_detail['campaignterm'],
'campaigncontent': each_detail['campaigncontent'], 'campaignname': each_detail['campaignname']})
return full_detail
def insert_details(self, baseurl, campaignsource, campaignmedium, campaignterm, campaigncontent, campaignname):
newname = {'baseurl': baseurl, 'campaignsource': campaignsource, 'campaignmedium': campaignmedium,
'campaignterm': campaignterm, 'campaigncontent': campaigncontent, 'campaignname': campaignname}
self.details.insert(newname)
def search(self, string):
full_details = []
for detail in self.details.find({ $or: [{'baseurl': string}, {'campaignsource': string},
{'campaignmedium': string}, {'campaignterm': string},
{'campaigncontent': string}, {'campaignname': string}]}):
full_details.append({'baseurl': detail['baseurl'], 'campaignsource': detail['campaignsource'],
'campaignmedium': detail['campaignmedium'], 'campaignterm': detail['campaignterm'],
'campaigncontent': detail['campaigncontent'], 'campaignname': detail['campaignname']})
return full_details
MongoShell使用javascript,但在pycharm中,您正在使用python Javascript接受不在引号中的对象字符串键,python不接受 在Javascript中有效:
{$or:{a:1}}
要使其在python中有效,所有对象键必须在引号中:
{"$or":{ "a":1}}