MongoDB查找子文档“像”的所有子文档;“字符串”;
示例文档结构如下所示:MongoDB查找子文档“像”的所有子文档;“字符串”;,mongodb,mongodb-query,aggregates,Mongodb,Mongodb Query,Aggregates,示例文档结构如下所示: { "_id" : "https://docs.mongodb.org/manual", "collection" : { "_id" : "collection", "urls" : [ "https://docs.mongodb.org/manual/c1", "https://docs.mongodb.org/manual/c2" ] },
{
"_id" : "https://docs.mongodb.org/manual",
"collection" : {
"_id" : "collection",
"urls" : [
"https://docs.mongodb.org/manual/c1",
"https://docs.mongodb.org/manual/c2"
]
},
"collectionNew" : {
"_id" : "collection1",
"urls" : [
"https://docs.mongodb.org/manual/c1New",
"https://docs.mongodb.org/manual/c2New"
]
},
"log" : {
"_id" : "log",
"urls" : [
"https://docs.mongodb.org/manual/l1",
"https://docs.mongodb.org/manual/l2"
]
}
}
我的收藏中有多个这样的文档。
通过查找文档后
db.AutoSearch.find({"_id": "https://docs.mongodb.org/manual"})
我想搜索此项下名为“collection”的所有子文档
解决方案
我将文档结构更改为:
{
"_id" : "https://docs.mongodb.org/manual",
"contents" : [
{
"_id" : "connect",
"urls" : [
"https://docs.mongodb.org/manual/search/?query=connect"
]
},
{
"_id" : "connection",
"urls" : [
"https://docs.mongodb.org/manual/search/?query=connection",
"https://docs.mongodb.org/manual/search/?query=connection%20pymongo"
]
}
{
"_id" : "list",
"urls" : [
"https://docs.mongodb.org/manual/search/?query=listfiles",
"https://docs.mongodb.org/manual/search/?query=listdatabases",
"https://docs.mongodb.org/manual/search/?query=listcommands"
]
},
{
"_id" : "log",
"urls" : [
"http://docs.mongodb.org/manual/tutorial/rotate-log-files/",
"http://docs.mongodb.org/manual/reference/log-messages/"
]
},
{
"_id" : "index",
"urls" : [
"https://docs.mongodb.org/manual/search/?query=index-related%20commands"
]
}
]}
然后用
我得到了所需的输出。首先,您需要更改文档结构。之后你会在这里找到你的快乐:首先你需要改变你的文档结构。之后,您将在这里找到您的幸福:
db.AutoSearch.aggregate([{$match:{ "_id": "https://docs.mongodb.org/manual"}},
{$unwind: '$contents'},
{$match:{"contents._id":/connect/}}])