簡體   English   中英

$ eq無效語法Mongo DB

[英]$eq invalid syntax Mongo DB

我有一個嵌套的json,我想找到一條值等於給定數字的記錄。 我在python wh等於運算符中使用pymongo,但出現一些錯誤:

from pymongo import MongoClient
import datetime
import json
import pprint
def connectDatabase(service):
    try:
        if service=="mongodb":
            host = 'mongodb://connecion_string.mlab.com:31989'
            database = 'xxx'
            user = 'xxx'
            password = 'xxx'
            client = MongoClient(host)
            client.xxx.authenticate(user, password, mechanism='SCRAM-SHA-1')
            db = client.xxx
            new_posts = [{"author": "Mike", "text": "Another post!",
               "tags": [
               {
                "CSPAccountNo": "414693"
                },
               {
               "CSPAccountNo": "349903"
               }]
               }]
               result=db.posts1.insert_many(new_posts)

            print (xxx.posts1.find( {"CSPAccountNo": { $eq: "414693" } } )

    except Exception as e:
        print(e)
        pass
print (connectDatabase("mongodb"))

錯誤:

  File "mongo.py", line 35
    print (cstore.posts1.find( {"CSPAccountNo": { $eq: "414693" } } )
                                                  ^
SyntaxError: invalid syntax

我是Mongodb的新手。 任何幫助,將不勝感激

在Python中,您必須使用Python語法,而不是Mongo shell中的JS語法。 這意味着字典鍵需要用引號引起來:

print(cstore.posts1.find( {"CSPAccountNo": { "$eq": "414693" } } )

(請注意,在您的代碼中,您實際上從未將new_posts插入集合中,因此您的find調用可能實際上找不到任何內容。)

它應該是

print (xxx.posts1.find( {"tags.CSPAccountNo": { $eq: "414693" } } )

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM