Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在pycharm中使用或子句mongodb时出错_Python_Mongodb_Pycharm - Fatal编程技术网

Python 在pycharm中使用或子句mongodb时出错

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

我在我的项目中使用mongodb是为了保存和检索数据,但当我在其中使用$or时,pycharm在$or处显示错误(用红色下划线),并说语句expected、found或_关键字 在mongo shell中使用相同的代码时,我能够得到结果,因此请帮助我,我的代码如下所示

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}}