如何检查对象内部的数组是否包含元素 mongoDB

How to check if array that inside an object contains element mongoDB

嗨,我有这份文件:

{
    "_id" : ObjectId("62792b4a0c9c5a00b6a8e17b"),
    "username" : "user_1",
    "words" : [ 
        {
            "word" : "RATIONAL",
            "subwords" : [ 
                "RAT", 
                "TAN"
            ]
        }, 
        {
            "word" : "YOUNGER",
            "subwords" : [ 
                "YOU", 
                "YOUR"
            ]
        }
    ]
}

我想查找具有特定 word 的文档,例如“RATIONAL”,并且他的 subwords 数组包含一个元素。

例如我想检查是否有一个文件有: 用户名:user_1 在他的 words 数组中,他包含 word:"RATIONAL" 并且他的 subwords 数组包含 word“RAT”

类似的东西:

db.users.find({username:"user_1","words":{word:"RATIONAL",subword:"RAT"}}).pretty();

谢谢大家:)

这应该适合你:

db.users.find({"username": "user_1", "words.word": "RATIONAL", "words.subwords": "RAT"})

您还可以使用 $elemMatch 运算符:

db.users.find({"username": "user_1",  "words": { "$elemMatch": { "word": "RATIONAL", "subwords": "RAT" } }})