我有下面的蒙古族结构
{
"brand": "test",
"keyword": "test",
"user": "test",
"link": "AAA",
"text": "test",
"insert_utc_ts": "2021-11-04 23:18:34.970",
"update_utc_ts": "2021-11-04 23:45:55.561",
"media": [{
"src": "Test2",
"media_ai_text": "Test",
"media_type": "PHOTO_TEST",
"insert_utc_ts": "2021-11-04 23:23:30.315",
"update_utc_ts": "2021-11-04 23:23:30.315"
}, {
"src": "Test",
"media_ai_text": "Test",
"media_type": "PHOTO_TEST",
"insert_utc_ts": "2021-11-04 23:23:45.331",
"update_utc_ts": "2021-11-04 23:23:45.331"
}]
}我需要找到媒体update_utc_ts,其中media.src = Test2和link = AAA
我试过用这个过滤器
{ link: "AAA", media.src: "Test2"}但根本不起作用。任何帮助都是非常感谢的
发布于 2021-11-05 00:09:02
您可以使用$unwind解构数组,然后使用所需的值解构$match。以及只返回所需值的可选阶段$project:
db.collection.aggregate([
{
"$unwind": "$media"
},
{
"$match": {
"link": "AAA",
"media.src": "Test2"
}
},
{
"$project": {
"_id": 0,
"media.update_utc_ts": 1
}
}
])示例这里
请注意,我假设您想检索media.update_utc_ts,这就是为什么过滤器查询不能工作的原因。
https://stackoverflow.com/questions/69847176
复制相似问题