newbie
newbie
  • 发布:2023-11-03 13:52
  • 更新:2023-11-03 16:49
  • 阅读:281

联表查询时where条件如何使用副表上数组类型下第一个元素的指定属性过滤

分类:uniCloud

联表查询出的结果如下,希望用_id.iword_record数组下的第一个元素的is_right属性过滤,应该如何写呢?
我是这样写的,但是查不到数据

肯请大神们能指点一下,谢谢先。

db.collection(wordTemp,levelTemp, recordTemp).where('_id.iword_record[0].is_right==true').get()
{  
        "_id": {  
            "_value": "654273fd7f79070231c044ba",  
            "iword_record": [  
                {  
                    "_id": "65439234189f86f5bedd5107",  
                    "is_right": true,  
                    "last_practice_date": 1698927156260,  
                    "record_id": "65439234189f86f5bedd5107",  
                    "user_id": "6541c3e5fe975fe6ff692764",  
                    "word_id": "654273fd7f79070231c044ba"  
                }  
            ]  
        },  
        "chinese": [  
            "int.(用作问候语)嘿,喂",  
            "abbr.夏威夷群岛的书面缩写; (=high intensity)高强度"  
        ],  
        "en_sound": "",  
        "en_symbol": "英音:[haɪ]",  
        "english": "",  
        "level_id": [  
            {  
                "_id": "6541c1cf9755e3e35f1ba674",  
                "text": "小学一年级上期"  
            }  
        ],  
        "pic": "https://mp-6ca44c55-9925-463b-ba2e-961e7d0134ed.cdn.bspapp.com/cloudstorage/0098ab72-43b2-490f-ac83-ff6093d53284.jpg",  
        "sample": "",  
        "us_sound": "",  
        "us_symbol": "美音:[haɪ]",  
        "word": "Hi"  
    }
2023-11-03 13:52 负责人:无 分享
已邀请:
newbie

newbie (作者)

自己终于试出来了:

db.collection(wordTemp,levelTemp, recordTemp).where('arrayElemAt(_id.iword_record.is_right,0)==false').field('_id.iword_record.is_right as record_right').get()

要回复问题请先登录注册