我无法弄清楚这段代码的问题。我的数据库正确初始化,我知道因为插入方法有效 - 我看到插入出现在服务器的mongo shell中。但是,由于某种原因,find方法总是返回None。
import pymongo
class Database(object):
url = "mongodb://192.168.2.104:27017"
DATABASE = None
@staticmethod
def initialize():
client = pymongo.MongoClient(Database.url)
Database.DATABASE = client["fullstack"]
@staticmethod
def insert(collection, data):
Database.DATABASE[collection].insert(data)
@staticmethod
def find(collection, query):
Database.DATABASE[collection].find(query)
现在假设我的“posts”集合中有一条记录,其属性为“blog_id”:“123” - 我知道因为当我执行db.posts.find({“blog_id”:“123”})时它会弹出在mongo shell中。然而,
from database import Database
Database.initialize()
post = Database.find("posts", {"blog_id": "123"})
for x in post:
print x
此代码始终返回None。这可能会出错?我在一个只有终端ubuntu的远程虚拟机中运行mongo。代码问题?或者我的VM服务器中是否存在读权限问题?提前致谢