[英]$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.