如何选择和返回MongoDB中的内部对象
我只想从下面的文档的单一形式中检验响应,我正在使用pymongo,所以我正在使用.find()
方法。
我所做的每个查询也会返回其他字段,因此我对需要使用哪些参数感到困惑。
这很奇怪,因为我尝试使用:
pprint(list(collection.find(
{'forms.id': "33b66684-24a9-4a45-a12f-27a330152ac8"}, {'forms': 1, '_id': 1}
)))
它返回两种形式而不是一种形式。
[
{
"_id": ObjectId("6283a32ab85dce6cc4869bb9"),
"company": "turivius",
"forms": [
{
"current_version": 0,
"history": [
{
"content": [
{
"field_id": 1,
"helperText": "qualquer arquivo",
"type": "file",
}
],
"layout": [
{"h": 50, "id": 1, "type": "file", "w": 100, "x": 0, "y": 1}
],
"responses": [
{
"client_id": 100,
"response_date": datetime.datetime(2022, 5, 17, 3, 0),
"values": [
{"field_id": 0, "value": "um texto"},
{"field_id": 1, "value": "ICIwIn0="},
],
}
],
"version": 0,
}
],
"id": "33b66684-24a9-4a45-a12f-27a330152ac8",
"is_active": True,
},
{
"current_version": 0,
"history": [],
"id": "fa2eb9a1-c7c4-4b64-b682-7f51658bc4ab",
"is_active": True,
"name": "Vrau",
},
],
"user_id": "1",
},
{
"_id": ObjectId("6283f19f066cf68667a9327d"),
"company": "turivius",
"forms": [],
"user_id": "-1",
},
]
进行查询后,我想返回:
[
{
"client_id": 100,
"response_date": datetime.datetime(2022, 5, 17, 3, 0),
"values": [
{"field_id": 0, "value": "um texto"},
{"field_id": 1, "value": "ICIwIn0="},
],
}
]
I would like to retrive just the responses from a single form of the document below, I'm using pymongo, so I'm using the .find()
method.
Every query I do Al other fields are returned too, So I'm confused about which parameters I need to use.
It's strange because whe I try to use:
pprint(list(collection.find(
{'forms.id': "33b66684-24a9-4a45-a12f-27a330152ac8"}, {'forms': 1, '_id': 1}
)))
It returns two forms instead of one.
[
{
"_id": ObjectId("6283a32ab85dce6cc4869bb9"),
"company": "turivius",
"forms": [
{
"current_version": 0,
"history": [
{
"content": [
{
"field_id": 1,
"helperText": "qualquer arquivo",
"type": "file",
}
],
"layout": [
{"h": 50, "id": 1, "type": "file", "w": 100, "x": 0, "y": 1}
],
"responses": [
{
"client_id": 100,
"response_date": datetime.datetime(2022, 5, 17, 3, 0),
"values": [
{"field_id": 0, "value": "um texto"},
{"field_id": 1, "value": "ICIwIn0="},
],
}
],
"version": 0,
}
],
"id": "33b66684-24a9-4a45-a12f-27a330152ac8",
"is_active": True,
},
{
"current_version": 0,
"history": [],
"id": "fa2eb9a1-c7c4-4b64-b682-7f51658bc4ab",
"is_active": True,
"name": "Vrau",
},
],
"user_id": "1",
},
{
"_id": ObjectId("6283f19f066cf68667a9327d"),
"company": "turivius",
"forms": [],
"user_id": "-1",
},
]
After do the query, I want to return it:
[
{
"client_id": 100,
"response_date": datetime.datetime(2022, 5, 17, 3, 0),
"values": [
{"field_id": 0, "value": "um texto"},
{"field_id": 1, "value": "ICIwIn0="},
],
}
]
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
与
表单
字段的操作员。Work with
$
operator forforms
field.Sample Mongo Playground