gpt4 book ai didi

python - 如何使用 PyMongo 检索数据?

转载 作者:行者123 更新时间:2023-12-01 08:33:27 26 4
gpt4 key购买 nike

我已经阅读了教程,因为我正在使用三个单独的东西:1. Flask作为服务器2. PyMongo 作为 MongoDB 驱动程序3. PyMODM 作为模式创建者

我已经很困惑了。

首先,我使用 PyMODM 定义了架构:

from pymongo import TEXT
from pymongo.operations import IndexModel
from pymodm import connect, fields, MongoModel, EmbeddedMongoModel

class GoalPosition(EmbeddedMongoModel):
x = fields.IntegerField()
y = fields.IntegerField()

class GoalOrientation(EmbeddedMongoModel):
x = fields.IntegerField()

class Goal(EmbeddedMongoModel):
position = fields.EmbeddedDocumentField(GoalPosition)
orientation = fields.EmbeddedDocumentField(GoalOrientation)

class Path(MongoModel):
path = fields.EmbeddedDocumentListField(Goal)

根据上面的内容,我的想法是制作两种类型的模式:目标和路径。最后,目标将如下所示:

{
"position": {
"x": "1",
"y": "6"
},
"orientation": {
"x": "0"
}
}

路径将是目标列表。有了我的架构,最大的问题是,如何使用它与我的 MongoDB 数据库进行通信?这是我的小型服务器代码:

from flask import Flask, render_template, flash, redirect, url_for, session, request, logging
from flask_pymongo import PyMongo
from flask import jsonify


app = Flask(__name__)
app.config["MONGO_URI"] = "mongodb+srv://user:pass@cluster0-qhfvu.mongodb.net/test?retryWrites=true"
mongo = PyMongo(app)

@app.route('/goal', methods=['GET', 'POST'])
def goals():
if request.method == 'GET':
goals = mongo.db.goals.find()
return jsonify(goals)

elif request.method == 'POST':
position = request.body.position
orientation = request.body.orientation
print position
flash("Goal added")

@app.route('/goal/<id>')
def goal(id):
goal = mongo.db.goals.find_one_or_404({"_id" : id})
return jsonify(goal)

因此,通过仅关注路由“/goal”处的 GET 方法,如何从数据库中检索所有目标消息?

此外,我想知道如何在“/goal/”处检索最后一条目标消息?

最佳答案

def goals():
if request.method == 'GET':
goals = mongo.db.goals.find()
return jsonify(goals)

您已检索目标集合中的所有记录。下面的示例将为您提供单个最新更新的记录。

def goals():
if request.method == 'GET':
goals = mongo.db.goals.find().sort({'_id',-1}).limit(1)
return jsonify(goals)

.

def goals():
if request.method == 'GET':
goals = mongo.db.goals.find().sort({'_id',-1})
return jsonify(goals)

上面的示例将按降序返回目标集合中所有数据的列表,这意味着最后的更新将位于顶部

寻找

mongo.db.goals.find_one({"_id": ObjectId(id)})

关于python - 如何使用 PyMongo 检索数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53832070/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com