2014-06-12 1 views
0

내 프로젝트에서 mongodb를 사용하고 있기 때문에 데이터를 저장 및 검색하고 싶지만 $를 사용하거나 pycharm에서 오류 (빨간색으로 밑줄이 그어진 부분)를 표시하고 있습니다. $ 또는 및 문 예상 말이 내가 결과를 얻을 수 있어요 몽고 쉘에서 같은를 사용하는 동안, 그래서 PLZ하지만 pycharm에서, 내 코드pycharm에서 사용 중 또는 절 mongodb에서 오류가 발생했습니다.

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 

답변

0

몽고 쉘은 자바 스크립트를 사용하여 다음과 같이 나를 도와 OR_keyword 을 발견하면 파이썬으로 작업하고 있습니다.

자바 스크립트는 따옴표로 묶지 않은 객체 문자열 키를 허용합니다. 파이썬은 따옴표를 사용하지 않습니다. 자바 스크립트의 유효

:

{$or:{a:1}} 

는 파이썬이 유효하게하려면, 모든 객체 키는 따옴표에 있어야합니다 :

{"$or":{ "a":1}} 
관련 문제