gpt4 book ai didi

mongodb - mongodb中的查询 View

转载 作者:搜寻专家 更新时间:2023-10-30 23:48:03 25 4
gpt4 key购买 nike

我有一个收藏,这是它的文档之一:

{
"_id" : 1 ,
"first_name" : "john",
"phone" : [
{
"type" : "mobile",
"number" : "9151112233"
},
{
"type" : "home",
"city_code" : 51,
"number" : "55251544"
},
{
"type" : "mobile",
"number" : "9152425125"
}
]
}

我正在搜索包含“移动”类型的“电话”并显示它们。

我需要这样的东西:

{
"number" : "9151112233",
"number" : "9152425125"
}

我为此编写了这个查询:

db.main.find({ _id : 1 , 'phone.type' : "mobile" },{'phone.number' : true , _id : false}).forEach(printjson)

我只想显示其类型为移动的数字,但此查询显示所有数字,因为此单个文档也包含其他文档。我该如何解决?

最佳答案

我会使用聚合框架以及 $unwind、$match 和 $project 命令。这:

db.main.aggregate({$unwind:"$phone"},{$match:{"phone.type":"mobile"}},{$project:{"phone.number":1,"_id":0}})

产生这个输出:

{ "phone" : { "number" : "9151112233" } }
{ "phone" : { "number" : "9152425125" } }

仅匹配手机号码。

http://docs.mongodb.org/manual/aggregation/

关于mongodb - mongodb中的查询 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25552674/

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