标签: pymongo-3.x

用pymongo和flask插入数据

当我单击提交按钮时,出现错误提示:

“ TypeError:'Collection'对象不可调用。如果您打算在'Database'对象上调用'insert'方法,则该方法将失败,因为不存在这样的方法。”

这是我的signin.py代码:

from flask import Flask, request, render_template
from pymongo import MongoClient

@app = Flask(__name__)
connection = MongoClient()
db = connection.project #database name.
collection = connection.signup # collection name.

@app.route('/signin/')
def index_show():
     return render_template('signin.html')

@app.route('/signin/', methods = ['POST'])
def signup_form():
   username = request.form['user']
   passowrd = request.form['pass']
   collection.insert({'user': username, 'passoword': passowrd})

if __name__ == '__main__':
   app.run(debug = True)
Run Code Online (Sandbox Code Playgroud)

我的html文件代码在这里:

  <!DOCTYPE html>
 <html>
  <head>
    <title></title>
  </head>
  <body>
     <form method="post" action=".">
       <input type="text" name="user" /><br/><br/>
       <input type="password" name="pass" /><br/><br/>
       <input type="submit" …
Run Code Online (Sandbox Code Playgroud)

python mongodb flask pymongo-3.x

2
推荐指数
1
解决办法
5599
查看次数

python3烧瓶应用程序中的pymongo导入错误

我有一个flask基于python 的应用程序,它写入mongo数据库.

我正在使用python 3以下内容requirements.txt

Flask
Jinja2
Werkzeug
certifi
chardet
gunicorn
requests
flask_restful
flask
pymongo
Run Code Online (Sandbox Code Playgroud)

我遇到了这个问题:

Traceback (most recent call last):
File "bin/app.py", line 4, in <module>
from helper import save_message_2_db
File "/app/bin/helper.py", line 1, in <module>
from database import DataAccess, MongoDB
File "/app/bin/database.py", line 1, in <module>
import pymongo
File "/app/.heroku/python/lib/python3.6/site-packages/pymongo/__init__.py", line 83, in <module>
from pymongo.collection import ReturnDocument
File "/app/.heroku/python/lib/python3.6/site-packages/pymongo/collection.py", line 21, in <module>
from bson.code import Code
File "/app/.heroku/python/lib/python3.6/site-packages/bson/code.py", line 19, in <module> …
Run Code Online (Sandbox Code Playgroud)

python mongodb pymongo python-3.x pymongo-3.x

2
推荐指数
1
解决办法
3150
查看次数

根据 Pymongo 中的值长度查询集合和文档

假设我的数据库给了我一个查询结果:

{'_id': ObjectId('5c99d76a32aacf180485c3b3'),
 'text': 'ILLUSTRATION : 1\nFind the quotient and remainder q and r for the pairs of positive integers given below:\n(i) 23,4\n(ii) 81,3\n(iii) 12,5\nUTION.\n',
 'text2': '',
 'parent': None,
 'repost': 3,
 'time': datetime.datetime(2010, 5, 9, 16, 5, 27, 838000)}
Run Code Online (Sandbox Code Playgroud)

我想获取前 1000 个文档,其中长度text或长度text2>=5:

我可以通过 Python 做到这一点,但这样做会很愚蠢:

objects = []
i = 0
for obj in db.essays.find():
    if len(obj['text']>=5) or len(obj['text2']>=5):
        objects.append(obj)
        i+=1
    if i==1000:
        break
Run Code Online (Sandbox Code Playgroud)

我知道这太愚蠢了。

limit(1000)如果我有完全匹配,我可以使用,但我不知道如何根据值长度获取文档。

编辑:不知何故我设法做一个补丁

{ "$or":[{"$expr": { "$gt": [ …
Run Code Online (Sandbox Code Playgroud)

python mongodb pymongo mongodb-query pymongo-3.x

2
推荐指数
1
解决办法
87
查看次数

Pymongo错误服务器超时

我使用pip安装了最新版本的Pymongo 3.2.2。另外,我使用Python 3.4 Anaconda。我正在尝试做一个简单的插入。这是我的代码:

>>> from pymongo import MongoClient
>>> client = MongoClient(connect=False)
>>> client["mydb"]
Database(MongoClient(host=['localhost:27017'], document_class=dict, tz_aware=False, connect=True), 'mydb')
>>> db = client["mydb"]
>>> collection = db["mycollection"]
Collection(Database(MongoClient(host=['localhost:27017'], document_class=dict, tz_aware=False, connect=True), 'mydb'), 'mycollection')

>>> book = {}
>>> book["title"] = "AnyBook"
>>> book["Author"] = "AnyAuthor" 

>>> collection.insert(book)
Run Code Online (Sandbox Code Playgroud)

这是我在“回溯”底部得到的消息:

Traceback (most recent call last):

pymongo.errors.ServerSelectionTimeoutError: localhost:27017: [Errno 8] nodename nor servname provided, or not known
Run Code Online (Sandbox Code Playgroud)

如何解决此问题,以便可以将记录插入MongoDB?

python mongodb pymongo-3.x

0
推荐指数
1
解决办法
4072
查看次数

pymongo:ImportError:没有名为pymongo的模块

我成功安装了pymongo使用 pip3

Aleeshas-MacBook-Air:project 2 aleesha$ sudo pip3 install pymongo
The directory '/Users/aleesha/Library/Caches/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
The directory '/Users/aleesha/Library/Caches/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip …
Run Code Online (Sandbox Code Playgroud)

python mongodb pymongo python-3.x pymongo-3.x

0
推荐指数
1
解决办法
1万
查看次数