gpt4 book ai didi

node.js - 在 mongodb 中查找 key 何时未知

转载 作者:可可西里 更新时间:2023-11-01 10:37:44 24 4
gpt4 key购买 nike

如何在 mongoDB 中获取电子邮件为 abc@gmail.com 的数据?我不知道 Key Name,我想遍历所有数据。

我有这样的数据:

{
"_id":"5c0a1589a5a41b2ae707317b",
"test1":{
"email":"abc@gmail.com",
"phoneNo":"123456897",
"endpointId":"test1"
}
}

{
"_id":"5c0a1989a5a41b2ae807317b",
"test2":{
"email":"abc@gmail.com",
"phoneNo":"123456897",
"endpointId":"test2"
}
}

{
"_id":"5c0a1989a5a41b2ae807317b",
"test2":{
"email":"pqr@gmail.com",
"phoneNo":"123456897",
"endpointId":"test3"
}
}

但在搜索时,对象键是未知的。我想遍历所有数据并获取具有特定电子邮件的匹配数据。

如果我知道键名,如 test1、test2 等,那么我可以使用 find({test1:{...}}) 但在这里我不知道键值。

那么,我该怎么做呢?

最佳答案

您可以使用以下聚合使用 $objectToArray在 mongodb 3.4 及以上

db.collection.aggregate([
{ "$addFields": {
"field": { "$objectToArray": "$$ROOT" }
}},
{ "$match": { "field.v.email": "abc@gmail.com" }},
{ "$project": { "field": 0 }}
])

关于node.js - 在 mongodb 中查找 key 何时未知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53760553/

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