收藏
回答

$.in 聚合查询指定值是否包含在数组内,为什么始终不正确?

有数据结构如下:

{
    name"123",
    taskList: [{
            taskName: "任务1",
            memberList: ["openid1""openid2"]
        },
        {
            taskName"任务2",
            memberList: ["openid3""openid4"]
        }
    ]
}


我想查找哪些任务中有指定的opendi,并且在该任务数据中新增输出字段(用聚合的addFields)反馈给用户。


我是这样写的;

db.collection("CaseList")
.aggregate()
.addFields({
"taskList.isme": $.in(["$openid2","$taskList.memberList"]),
.end()


输出始终是 taskList.isme = false


于是我试着输出$taskList.memberList的值,看是否数组取值错误

db.collection("CaseList")
.aggregate()
.addFields({
"taskList.isme": $.in(["$openid2","$taskList.memberList"]),
"Test":"$taskList.memberList"]
.end()


输出确实是数组,那为什么我这个写法就是匹配不上呢?是我写法有问题么?

回答关注问题邀请回答
收藏
登录 后发表内容