【发布时间】:2021-05-03 14:09:50
【问题描述】:
我有 3 个收藏。我想组合这些并从合并的数据中过滤数据。
商业收藏
{
_id:1,
"user_id": 1,
"name": "Doll Shopqq",
"registered_phone_number": 701006522222109,
"business_profile_image_url": "http://website.com/hiyup_dev/business/1611569489867_businessImage.jpeg",
"email": "",
"media_urls": ["http://website.com/hiyup_dev/business/1611569503298_3176405500.jpeg",
"http://website.com/hiyup_dev/business/1611569983527_3192836205.mp4"],
"description": "Doll shop",
"products": [{
"_id": 1
"name": "Dog Biscuits",
"lower_price": "0.00",
"media_urls": ["http://website.com/hiyup_dev/product/1611569983527_3192836205.jpeg", "http://website.com/hiyup_dev/product/1611569983527_3192836205.mp4"],
"higher_price": "0.00",
"description": "Biscuits",
}, {
"_id": 2,
"name": "Dog Biscuits-1",
"lower_price": "0.00",
"media_urls": ["http://website.com/hiyup_dev/product/1611569983527_3192836205.jpeg"],
"higher_price": "0.00",
"description": "Biscuits-1",
}],
"status": 1,
"country_code": ""
}
优惠收集
{
"_id": 1,
"name": "offer name 1",
"user_id": 1,
"lower_price": "0.00",
"media_urls": ["http://website.com/hiyup_dev/offer/1611569983527_3192836205.jpeg",
"http://website.com/hiyup_dev/offer/1611569983527_3192836205.mp4"],
"higher_price": "0.00",
"description": "Biscuits",
}, {
"_id": 2,
"name": "offr name2", "user_id": 1,
"lower_price": "0.00",
"media_urls": ["http://website.com/hiyup_dev/offer/1611569983527_3192836205.jpeg"],
"higher_price": "0.00",
"description": "Biscuits-1",
}
产品请求集合
{
"_id": 1,
"name": "request name 1", "user_id": 1,
"lower_price": "0.00",
"media_urls": ["http://website.com/hiyup_dev/request/1611569983527_3192836205.jpeg",
"http://website.com/hiyup_dev/request/1611569983527_3192836205.mp4"],
"higher_price": "0.00",
"description": "Biscuits",
}, {
"_id": 2,
"name": "request name2", "user_id": 1,
"lower_price": "0.00",
"media_urls": ["http://website.com/hiyup_dev/product/1611569983527_3192836205.jpeg"],
"higher_price": "0.00",
"description": "Biscuits-1",
}
我需要从业务集合中获取 products.media_urls 中包含视频的产品,同样从 offer 中获取 product_request 集合我想获取 media_urls 中包含视频的项目。 我想从 product、offers、product_request 中获取它们的 media_url 数组中有视频的项目。
我想合并这些集合并过滤只有视频的 media_urls。 对于单个集合,我使用正则表达式完成了过滤。
但我无法合并 多个 集合。 当我使用放松。重复数据即将到来。
我的预期输出是
{
"_id": 2, //or some other key name like product_id
**"type": "products"**
"name": "Dog Biscuits-1",
"lower_price": "0.00",
"media_urls": [
"http://website.com/hiyup_dev/product/1611569983527_3192836205.mp4"],
"higher_price": "0.00",
"description": "Biscuits-1",
},
{
"_id": 1,//or some other key name
"type": "offer"
"name": "offer name 1",
"lower_price": "0.00",
"media_urls": [
"http://website.com/hiyup_dev/offer/1611569983527_3192836205.mp4"],
"higher_price": "0.00",
"description": "Biscuits",
},
{
"_id": 1,//or some other key name
"type": "request"
"name": "request name 1",
"lower_price": "0.00",
"media_urls": [
"http://website.com/hiyup_dev/request/1611569983527_3192836205.mp4"],
"higher_price": "0.00",
"description": "Biscuits",
},
{
"_id": 1,//or some other key name
"type": "business"
"media_urls": [
"http://website.com/hiyup_dev/business/1611569983527_3192836205.mp4"],
}
【问题讨论】:
-
你想如何组合这些集合?联合收款有条件吗?
-
我在所有集合中都有一个 user_id 字段。但我不想结合 user_id 的帮助。我想从产品、报价、产品请求中提取所有视频(媒体 URL)
-
您想从企业收藏中选择什么?有一个根级 media_url 字段,也在数组产品中。
-
从业务集合中,我需要获取 products.media_urls 中包含视频的产品,同样从 offer、product_request 集合中我想获取 media_url 中包含视频的项目。我想从 product、offers、product_request 中获取它们的 media_url 数组中有视频的项目。
-
如何识别其视频url或其他?有没有特定的视频扩展?
标签: node.js mongodb mongodb-nodejs-driver