从 MongoDB 集合中的 URL 获取域名

Posted

技术标签:

【中文标题】从 MongoDB 集合中的 URL 获取域名【英文标题】:Get domain name from URL in MongoDB collection 【发布时间】:2020-08-06 03:40:36 【问题描述】:

我正在尝试从 URL 字段中获取域名。目前,它作为 URL:https://google.bing.com/Jumbo-Privacy 存储在集合中。我只需要google.bing.com

对于www.google.com 的URL,我只想要google.com。无论如何,当我显示集合结果时,我是否可以直接这样做?

当我添加'domain': '$arrayElemAt': [ '$split': ["$url", "/"] , 2 ] ,

它可以工作并为https://google.bing.com/Jumbo-Privacy 返回google.bing.com。但仍会为其他所有内容返回 www

【问题讨论】:

【参考方案1】:

使用urllib.parse library 中的urlparse

from urllib.parse import urlparse
url = urlparse('https://google.bing.com/Jumbo-Privacy')
print (url.netloc)

给予:

google.bing.com

【讨论】:

【参考方案2】:

您必须编写一些自定义代码来解析它。

这是一个例子:


//Assuming you'll always have https:// infront

const Url = 'https://moodli.org/geo'

//Split thé URL into an array using the forward slash
let urlSplit = Url.split('/');

//Get the domain name
let domian = urlSplit[2]


【讨论】:

这是 ec6 对吧?我们可以直接在MongoDB中这样做吗? 是的。它是 javascript。是的,你可以直接用 mongodb 做到这一点。从理论上讲,您编写的查询应该可以工作。

以上是关于从 MongoDB 集合中的 URL 获取域名的主要内容,如果未能解决你的问题,请参考以下文章

从 MongoDB 集合中的特定文档开始获取“n”个文档

sh 如何从mongodb中的集合中获取所有文档?

使用limit和skip从mongoDB中的两个集合中获取记录

从 mongodb 集合中获取最新记录

MongoDB 使用 Node.js 获取集合中的文档数(计数)

从 MongoDB 中的另一个集合中添加值