gpt4 book ai didi

regex - Mongodb - 子文档键的正则表达式匹配

转载 作者:行者123 更新时间:2023-12-02 02:56:52 24 4
gpt4 key购买 nike

我有一些文档保存在一个集合(称为 url)中,如下所示:

{
payload:{
url_google.com:{
url:'google.com',
text:'search'
}
}
},
{
payload:{
url_t.co:{
url:'t.co',
text:'url shortener'
}
}
},
{
payload:{
url_facebook.com:{
url:'facebook.com',
text:'social network'
}
}
}

使用 mongo CLI,是否可以查找与 /^url_/ 匹配的 payload 子文档?而且,如果可能的话,是否也可以查询匹配的子文档(例如,确保 text 存在)?

我在想这样的事情:

db.urls.find({"payload":{"$regex":/^url_/}}).count();

但是返回 0 个结果。

任何帮助或建议都会很棒。

谢谢

马特

最佳答案

无法以这种方式查询文档键。您可以使用 $exists 搜索完全匹配项,但无法找到与模式匹配的键名称。

我假设(可能是错误的)您正在尝试查找具有 URL 子文档的文档,并且并非所有文档都会具有此子文档?为什么不将该类型信息降低一个级别,例如:

{
payload: {
type: "url",
url: "Facebook.com",
...
}
}

然后你可以这样查询:

db.foo.find({"payload.type": "url", ...})

如果我没有注意到不应该使用点 (.) 是 MongoDB 中的键名,那我也算是失职了。在某些情况下,可以创建这样的文档,但是当您尝试查询嵌入文档时(可以说,Mongo 使用点作为“路径分隔符”),它会引起极大的困惑。

关于regex - Mongodb - 子文档键的正则表达式匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7278417/

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