gpt4 book ai didi

python - 无法获取单个mongo文档

转载 作者:太空宇宙 更新时间:2023-11-03 20:15:06 24 4
gpt4 key购买 nike

我对 python 和 mongodb 相当陌生,我已经遇到了一个问题。

我正在尝试将nodejs后端restapi“翻译”到flask中,使用mongodb作为数据源。

使用the flask documentation ,我能够配置我的应用程序以连接到我的本地 mongod。

我可以像这样从 users 集合中获取值

def getUser():
usr = Users.objects(email="mail@mail.com")
return {
"user": usr,
}

当我通过 Postman 调用 API 时,它返回以下 JSON

{
"user": [
{
"__v": 0,
"_id": {
"$oid": "5da86dc651eac87d2a82e2e2"
},
"createdAt": {
"$date": 1571319238918
},
"email": "mail@mail.com",
"password": "$2b$10$hoH57R5GL1MrwqpuW4yEJ.wwLlyNgyfxQm2Mxb19wioYTPPsU9z7y",
"profil": {
"_id": {
"$oid": "5da86dc651eac87d2a82e2e3"
},
"checked": false,
"clapList": [],
"followerList": [],
"followingList": [],
"playpoint": 0
},
"updatedAt": {
"$date": 1571319477959
}
}
]
}

如您所见,我有一个包含一个用户的数组。当我尝试只获取一个对象时,如下所示:

def getUser():
usr = Users.objects(email="mail@mail.com").first()
return {
"user": usr,
}

我在 Postman 中返回了 500 状态,并且在调试控制台中出现以下错误:mongoengine.errors.FieldDoesNotExist:文档“Users”上不存在字段“{'__v'}”

这是我的用户模型

import mongoengine as me

class Users(me.Document):
phone = me.StringField()
email = me.StringField()
password = me.StringField()
accountType = me.StringField()
createdAt = me.DateTimeField()
updatedAt = me.DateTimeField()
profil = me.EmbeddedDocumentField(Profil)

我已经尝试将 __v 添加为 InfField(),但仍然遇到相同的错误。

__v 到底是什么?我应该重试从头开始创建一个新数据库吗?

其他信息:

  • mongodb 数据库和集合是使用 Nodejs API 生成的
  • 数据库中的用户是使用nodejs API生成的

最佳答案

所以我向它添加了一个元属性,现在我可以使用该类

meta = {
'strict': False,
}

我还不知道里面发生了什么,但如果它有效的话我不会碰任何东西

关于python - 无法获取单个mongo文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58498704/

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