1

The schema for my documents is something like this:

history: { type: [Object] }

I want to find all documents that have an item in the 15th spot in the array.

The query I hoped would work is:

db.getCollection('teams').find({'history.15': {$exists: true}})

But if history.15 is null it will still return the document which is not what I want. So the easy fix should be doing this:

db.getCollection('teams').find({'history.15': {$exists: true, $ne: null}})

But this doesn't return any objects (and there are objects in my db that have a 15th array item that isn't null).

Any ideas how I can get this query to work?

Update: Here is a sample document that isn't being found by my query:

{
    "_id" : "FR5BTtggnbxRrDqi3",
    "history" : [ 
        null, 
        {
            "lineup" : [ 
                "DmwbPcTpPKoPQqJe6", 
                "4Csv4LDHmCku4p2d7", 
                "4cWjs7kjweQhTg5gq", 
                "BaRu7TonDB8iKhzdC", 
                "6xvdipvf8PNNgaB4d", 
                "A3vPEhAmhoMYA8iBm", 
                "AMDWHF8tkBLvGPwQx", 
                "MtZQjZqwptcY4MJXm", 
                "47oDynBoQifNyhG9u", 
                "QFWQLFyLvpzvfn9Nb", 
                "gWtx6YZW5sPehiksC"
            ],
            "subs" : [ 
                "HcPjMYdG7FcxhRuFj", 
                "REs5NdgicB3wYwr8F", 
                "ad7z4NnoqMsLWyhpt", 
                "ux7HCjzSpw25JYe7r"
            ],
            "score" : 34,
            "finalLineup" : [ 
                "47oDynBoQifNyhG9u", 
                "4Csv4LDHmCku4p2d7", 
                "4cWjs7kjweQhTg5gq", 
                "6xvdipvf8PNNgaB4d"
            ],
            "finalSubs" : [ 
                "DmwbPcTpPKoPQqJe6", 
                "gWtx6YZW5sPehiksC", 
                "QFWQLFyLvpzvfn9Nb", 
                "ux7HCjzSpw25JYe7r"
            ],
            "autoSubs" : [ 
                {
                    "in" : "ad7z4NnoqMsLWyhpt",
                    "out" : "DmwbPcTpPKoPQqJe6"
                }, 
                {
                    "in" : "HcPjMYdG7FcxhRuFj",
                    "out" : "gWtx6YZW5sPehiksC"
                }, 
                {
                    "in" : "REs5NdgicB3wYwr8F",
                    "out" : "QFWQLFyLvpzvfn9Nb"
                }
            ]
        }, 
        {
            "lineup" : [ 
                "DmwbPcTpPKoPQqJe6", 
                "4Csv4LDHmCku4p2d7", 
                "4cWjs7kjweQhTg5gq", 
                "BaRu7TonDB8iKhzdC", 
                "6xvdipvf8PNNgaB4d", 
                "A3vPEhAmhoMYA8iBm", 
                "AMDWHF8tkBLvGPwQx", 
                "MtZQjZqwptcY4MJXm", 
                "47oDynBoQifNyhG9u", 
                "QFWQLFyLvpzvfn9Nb", 
                "gWtx6YZW5sPehiksC"
            ],
            "subs" : [ 
                "HcPjMYdG7FcxhRuFj", 
                "REs5NdgicB3wYwr8F", 
                "ad7z4NnoqMsLWyhpt", 
                "ux7HCjzSpw25JYe7r"
            ],
            "score" : 0,
            "finalLineup" : [ 
                "47oDynBoQifNyhG9u", 
                "4Csv4LDHmCku4p2d7", 
                "4cWjs7kjweQhTg5gq", 
                "6xvdipvf8PNNgaB4d", 
                "A3vPEhAmhoMYA8iBm", 
                "AMDWHF8tkBLvGPwQx", 
                "BaRu7TonDB8iKhzdC", 
                "DmwbPcTpPKoPQqJe6", 
                "MtZQjZqwptcY4MJXm", 
                "QFWQLFyLvpzvfn9Nb", 
                "gWtx6YZW5sPehiksC"
            ],
            "finalSubs" : [ 
                "ad7z4NnoqMsLWyhpt", 
                "HcPjMYdG7FcxhRuFj", 
                "REs5NdgicB3wYwr8F", 
                "ux7HCjzSpw25JYe7r"
            ],
            "autoSubs" : []
        }, 
        {
            "lineup" : [ 
                "DmwbPcTpPKoPQqJe6", 
                "4Csv4LDHmCku4p2d7", 
                "4cWjs7kjweQhTg5gq", 
                "BaRu7TonDB8iKhzdC", 
                "6xvdipvf8PNNgaB4d", 
                "A3vPEhAmhoMYA8iBm", 
                "AMDWHF8tkBLvGPwQx", 
                "MtZQjZqwptcY4MJXm", 
                "47oDynBoQifNyhG9u", 
                "QFWQLFyLvpzvfn9Nb", 
                "gWtx6YZW5sPehiksC"
            ],
            "subs" : [ 
                "HcPjMYdG7FcxhRuFj", 
                "REs5NdgicB3wYwr8F", 
                "ad7z4NnoqMsLWyhpt", 
                "ux7HCjzSpw25JYe7r"
            ],
            "score" : 18,
            "finalLineup" : [ 
                "ad7z4NnoqMsLWyhpt", 
                "4Csv4LDHmCku4p2d7", 
                "4cWjs7kjweQhTg5gq", 
                "BaRu7TonDB8iKhzdC", 
                "6xvdipvf8PNNgaB4d", 
                "A3vPEhAmhoMYA8iBm", 
                "AMDWHF8tkBLvGPwQx", 
                "MtZQjZqwptcY4MJXm", 
                "47oDynBoQifNyhG9u", 
                "REs5NdgicB3wYwr8F", 
                "HcPjMYdG7FcxhRuFj"
            ],
            "finalSubs" : [ 
                "gWtx6YZW5sPehiksC", 
                "QFWQLFyLvpzvfn9Nb", 
                "DmwbPcTpPKoPQqJe6", 
                "ux7HCjzSpw25JYe7r"
            ],
            "autoSubs" : [ 
                {
                    "in" : "HcPjMYdG7FcxhRuFj",
                    "out" : "gWtx6YZW5sPehiksC"
                }, 
                {
                    "in" : "REs5NdgicB3wYwr8F",
                    "out" : "QFWQLFyLvpzvfn9Nb"
                }, 
                {
                    "in" : "ad7z4NnoqMsLWyhpt",
                    "out" : "DmwbPcTpPKoPQqJe6"
                }
            ]
        }, 
        {
            "lineup" : [ 
                "DmwbPcTpPKoPQqJe6", 
                "4Csv4LDHmCku4p2d7", 
                "4cWjs7kjweQhTg5gq", 
                "BaRu7TonDB8iKhzdC", 
                "6xvdipvf8PNNgaB4d", 
                "A3vPEhAmhoMYA8iBm", 
                "AMDWHF8tkBLvGPwQx", 
                "MtZQjZqwptcY4MJXm", 
                "47oDynBoQifNyhG9u", 
                "QFWQLFyLvpzvfn9Nb", 
                "gWtx6YZW5sPehiksC"
            ],
            "subs" : [ 
                "HcPjMYdG7FcxhRuFj", 
                "REs5NdgicB3wYwr8F", 
                "ad7z4NnoqMsLWyhpt", 
                "ux7HCjzSpw25JYe7r"
            ],
            "score" : 38,
            "finalLineup" : [ 
                "ad7z4NnoqMsLWyhpt", 
                "4Csv4LDHmCku4p2d7", 
                "4cWjs7kjweQhTg5gq", 
                "BaRu7TonDB8iKhzdC", 
                "6xvdipvf8PNNgaB4d", 
                "A3vPEhAmhoMYA8iBm", 
                "AMDWHF8tkBLvGPwQx", 
                "MtZQjZqwptcY4MJXm", 
                "47oDynBoQifNyhG9u", 
                "REs5NdgicB3wYwr8F", 
                "HcPjMYdG7FcxhRuFj"
            ],
            "finalSubs" : [ 
                "gWtx6YZW5sPehiksC", 
                "QFWQLFyLvpzvfn9Nb", 
                "DmwbPcTpPKoPQqJe6", 
                "ux7HCjzSpw25JYe7r"
            ],
            "autoSubs" : [ 
                {
                    "in" : "HcPjMYdG7FcxhRuFj",
                    "out" : "gWtx6YZW5sPehiksC"
                }, 
                {
                    "in" : "REs5NdgicB3wYwr8F",
                    "out" : "QFWQLFyLvpzvfn9Nb"
                }, 
                {
                    "in" : "ad7z4NnoqMsLWyhpt",
                    "out" : "DmwbPcTpPKoPQqJe6"
                }
            ]
        }, 
        {
            "lineup" : [ 
                "DmwbPcTpPKoPQqJe6", 
                "4Csv4LDHmCku4p2d7", 
                "4cWjs7kjweQhTg5gq", 
                "BaRu7TonDB8iKhzdC", 
                "6xvdipvf8PNNgaB4d", 
                "A3vPEhAmhoMYA8iBm", 
                "AMDWHF8tkBLvGPwQx", 
                "MtZQjZqwptcY4MJXm", 
                "47oDynBoQifNyhG9u", 
                "QFWQLFyLvpzvfn9Nb", 
                "gWtx6YZW5sPehiksC"
            ],
            "subs" : [ 
                "HcPjMYdG7FcxhRuFj", 
                "REs5NdgicB3wYwr8F", 
                "ad7z4NnoqMsLWyhpt", 
                "ux7HCjzSpw25JYe7r"
            ],
            "score" : 27,
            "finalLineup" : [ 
                "ad7z4NnoqMsLWyhpt", 
                "4Csv4LDHmCku4p2d7", 
                "4cWjs7kjweQhTg5gq", 
                "BaRu7TonDB8iKhzdC", 
                "6xvdipvf8PNNgaB4d", 
                "A3vPEhAmhoMYA8iBm", 
                "AMDWHF8tkBLvGPwQx", 
                "MtZQjZqwptcY4MJXm", 
                "47oDynBoQifNyhG9u", 
                "REs5NdgicB3wYwr8F", 
                "HcPjMYdG7FcxhRuFj"
            ],
            "finalSubs" : [ 
                "gWtx6YZW5sPehiksC", 
                "QFWQLFyLvpzvfn9Nb", 
                "DmwbPcTpPKoPQqJe6", 
                "ux7HCjzSpw25JYe7r"
            ],
            "autoSubs" : [ 
                {
                    "in" : "HcPjMYdG7FcxhRuFj",
                    "out" : "gWtx6YZW5sPehiksC"
                }, 
                {
                    "in" : "REs5NdgicB3wYwr8F",
                    "out" : "QFWQLFyLvpzvfn9Nb"
                }, 
                {
                    "in" : "ad7z4NnoqMsLWyhpt",
                    "out" : "DmwbPcTpPKoPQqJe6"
                }
            ]
        }, 
        {
            "lineup" : [ 
                "DmwbPcTpPKoPQqJe6", 
                "4Csv4LDHmCku4p2d7", 
                "4cWjs7kjweQhTg5gq", 
                "BaRu7TonDB8iKhzdC", 
                "6xvdipvf8PNNgaB4d", 
                "A3vPEhAmhoMYA8iBm", 
                "AMDWHF8tkBLvGPwQx", 
                "MtZQjZqwptcY4MJXm", 
                "47oDynBoQifNyhG9u", 
                "QFWQLFyLvpzvfn9Nb", 
                "gWtx6YZW5sPehiksC"
            ],
            "subs" : [ 
                "HcPjMYdG7FcxhRuFj", 
                "REs5NdgicB3wYwr8F", 
                "ad7z4NnoqMsLWyhpt", 
                "ux7HCjzSpw25JYe7r"
            ],
            "score" : 34,
            "finalLineup" : [ 
                "DmwbPcTpPKoPQqJe6", 
                "4Csv4LDHmCku4p2d7", 
                "4cWjs7kjweQhTg5gq", 
                "BaRu7TonDB8iKhzdC", 
                "6xvdipvf8PNNgaB4d", 
                "A3vPEhAmhoMYA8iBm", 
                "AMDWHF8tkBLvGPwQx", 
                "MtZQjZqwptcY4MJXm", 
                "47oDynBoQifNyhG9u", 
                "REs5NdgicB3wYwr8F", 
                "HcPjMYdG7FcxhRuFj"
            ],
            "finalSubs" : [ 
                "gWtx6YZW5sPehiksC", 
                "QFWQLFyLvpzvfn9Nb", 
                "ad7z4NnoqMsLWyhpt", 
                "ux7HCjzSpw25JYe7r"
            ],
            "autoSubs" : [ 
                {
                    "in" : "HcPjMYdG7FcxhRuFj",
                    "out" : "gWtx6YZW5sPehiksC"
                }, 
                {
                    "in" : "REs5NdgicB3wYwr8F",
                    "out" : "QFWQLFyLvpzvfn9Nb"
                }
            ]
        }, 
        {
            "lineup" : [ 
                "DmwbPcTpPKoPQqJe6", 
                "4Csv4LDHmCku4p2d7", 
                "4cWjs7kjweQhTg5gq", 
                "BaRu7TonDB8iKhzdC", 
                "6xvdipvf8PNNgaB4d", 
                "A3vPEhAmhoMYA8iBm", 
                "AMDWHF8tkBLvGPwQx", 
                "MtZQjZqwptcY4MJXm", 
                "47oDynBoQifNyhG9u", 
                "QFWQLFyLvpzvfn9Nb", 
                "gWtx6YZW5sPehiksC"
            ],
            "subs" : [ 
                "HcPjMYdG7FcxhRuFj", 
                "REs5NdgicB3wYwr8F", 
                "ad7z4NnoqMsLWyhpt", 
                "ux7HCjzSpw25JYe7r"
            ],
            "score" : 15,
            "finalLineup" : [ 
                "DmwbPcTpPKoPQqJe6", 
                "4Csv4LDHmCku4p2d7", 
                "4cWjs7kjweQhTg5gq", 
                "BaRu7TonDB8iKhzdC", 
                "6xvdipvf8PNNgaB4d", 
                "A3vPEhAmhoMYA8iBm", 
                "AMDWHF8tkBLvGPwQx", 
                "MtZQjZqwptcY4MJXm", 
                "47oDynBoQifNyhG9u", 
                "REs5NdgicB3wYwr8F", 
                "HcPjMYdG7FcxhRuFj"
            ],
            "finalSubs" : [ 
                "gWtx6YZW5sPehiksC", 
                "QFWQLFyLvpzvfn9Nb", 
                "ad7z4NnoqMsLWyhpt", 
                "ux7HCjzSpw25JYe7r"
            ],
            "autoSubs" : [ 
                {
                    "in" : "HcPjMYdG7FcxhRuFj",
                    "out" : "gWtx6YZW5sPehiksC"
                }, 
                {
                    "in" : "REs5NdgicB3wYwr8F",
                    "out" : "QFWQLFyLvpzvfn9Nb"
                }
            ]
        }, 
        {
            "lineup" : [ 
                "DmwbPcTpPKoPQqJe6", 
                "4Csv4LDHmCku4p2d7", 
                "4cWjs7kjweQhTg5gq", 
                "BaRu7TonDB8iKhzdC", 
                "6xvdipvf8PNNgaB4d", 
                "A3vPEhAmhoMYA8iBm", 
                "AMDWHF8tkBLvGPwQx", 
                "MtZQjZqwptcY4MJXm", 
                "47oDynBoQifNyhG9u", 
                "QFWQLFyLvpzvfn9Nb", 
                "gWtx6YZW5sPehiksC"
            ],
            "subs" : [ 
                "HcPjMYdG7FcxhRuFj", 
                "REs5NdgicB3wYwr8F", 
                "ad7z4NnoqMsLWyhpt", 
                "ux7HCjzSpw25JYe7r"
            ],
            "score" : 13,
            "finalLineup" : [ 
                "DmwbPcTpPKoPQqJe6", 
                "4Csv4LDHmCku4p2d7", 
                "4cWjs7kjweQhTg5gq", 
                "BaRu7TonDB8iKhzdC", 
                "6xvdipvf8PNNgaB4d", 
                "A3vPEhAmhoMYA8iBm", 
                "AMDWHF8tkBLvGPwQx", 
                "MtZQjZqwptcY4MJXm", 
                "47oDynBoQifNyhG9u", 
                "REs5NdgicB3wYwr8F", 
                "HcPjMYdG7FcxhRuFj"
            ],
            "finalSubs" : [ 
                "gWtx6YZW5sPehiksC", 
                "QFWQLFyLvpzvfn9Nb", 
                "ad7z4NnoqMsLWyhpt", 
                "ux7HCjzSpw25JYe7r"
            ],
            "autoSubs" : [ 
                {
                    "in" : "HcPjMYdG7FcxhRuFj",
                    "out" : "gWtx6YZW5sPehiksC"
                }, 
                {
                    "in" : "REs5NdgicB3wYwr8F",
                    "out" : "QFWQLFyLvpzvfn9Nb"
                }
            ]
        }, 
        {
            "lineup" : [ 
                "DmwbPcTpPKoPQqJe6", 
                "4Csv4LDHmCku4p2d7", 
                "4cWjs7kjweQhTg5gq", 
                "BaRu7TonDB8iKhzdC", 
                "6xvdipvf8PNNgaB4d", 
                "A3vPEhAmhoMYA8iBm", 
                "AMDWHF8tkBLvGPwQx", 
                "MtZQjZqwptcY4MJXm", 
                "47oDynBoQifNyhG9u", 
                "QFWQLFyLvpzvfn9Nb", 
                "gWtx6YZW5sPehiksC"
            ],
            "subs" : [ 
                "HcPjMYdG7FcxhRuFj", 
                "REs5NdgicB3wYwr8F", 
                "ad7z4NnoqMsLWyhpt", 
                "ux7HCjzSpw25JYe7r"
            ],
            "score" : 34,
            "finalLineup" : [ 
                "DmwbPcTpPKoPQqJe6", 
                "4Csv4LDHmCku4p2d7", 
                "4cWjs7kjweQhTg5gq", 
                "BaRu7TonDB8iKhzdC", 
                "6xvdipvf8PNNgaB4d", 
                "A3vPEhAmhoMYA8iBm", 
                "AMDWHF8tkBLvGPwQx", 
                "MtZQjZqwptcY4MJXm", 
                "REs5NdgicB3wYwr8F", 
                "QFWQLFyLvpzvfn9Nb", 
                "HcPjMYdG7FcxhRuFj"
            ],
            "finalSubs" : [ 
                "gWtx6YZW5sPehiksC", 
                "47oDynBoQifNyhG9u", 
                "ad7z4NnoqMsLWyhpt", 
                "ux7HCjzSpw25JYe7r"
            ],
            "autoSubs" : [ 
                {
                    "in" : "HcPjMYdG7FcxhRuFj",
                    "out" : "gWtx6YZW5sPehiksC"
                }, 
                {
                    "in" : "REs5NdgicB3wYwr8F",
                    "out" : "47oDynBoQifNyhG9u"
                }
            ]
        }, 
        {
            "lineup" : [ 
                "DmwbPcTpPKoPQqJe6", 
                "4Csv4LDHmCku4p2d7", 
                "4cWjs7kjweQhTg5gq", 
                "BaRu7TonDB8iKhzdC", 
                "6xvdipvf8PNNgaB4d", 
                "A3vPEhAmhoMYA8iBm", 
                "AMDWHF8tkBLvGPwQx", 
                "MtZQjZqwptcY4MJXm", 
                "47oDynBoQifNyhG9u", 
                "QFWQLFyLvpzvfn9Nb", 
                "gWtx6YZW5sPehiksC"
            ],
            "subs" : [ 
                "HcPjMYdG7FcxhRuFj", 
                "REs5NdgicB3wYwr8F", 
                "ad7z4NnoqMsLWyhpt", 
                "ux7HCjzSpw25JYe7r"
            ],
            "score" : 14,
            "finalLineup" : [ 
                "DmwbPcTpPKoPQqJe6", 
                "4Csv4LDHmCku4p2d7", 
                "4cWjs7kjweQhTg5gq", 
                "BaRu7TonDB8iKhzdC", 
                "6xvdipvf8PNNgaB4d", 
                "A3vPEhAmhoMYA8iBm", 
                "AMDWHF8tkBLvGPwQx", 
                "MtZQjZqwptcY4MJXm", 
                "REs5NdgicB3wYwr8F", 
                "QFWQLFyLvpzvfn9Nb", 
                "HcPjMYdG7FcxhRuFj"
            ],
            "finalSubs" : [ 
                "gWtx6YZW5sPehiksC", 
                "47oDynBoQifNyhG9u", 
                "ad7z4NnoqMsLWyhpt", 
                "ux7HCjzSpw25JYe7r"
            ],
            "autoSubs" : [ 
                {
                    "in" : "HcPjMYdG7FcxhRuFj",
                    "out" : "gWtx6YZW5sPehiksC"
                }, 
                {
                    "in" : "REs5NdgicB3wYwr8F",
                    "out" : "47oDynBoQifNyhG9u"
                }
            ]
        }, 
        {
            "lineup" : [ 
                "DmwbPcTpPKoPQqJe6", 
                "4Csv4LDHmCku4p2d7", 
                "4cWjs7kjweQhTg5gq", 
                "BaRu7TonDB8iKhzdC", 
                "6xvdipvf8PNNgaB4d", 
                "A3vPEhAmhoMYA8iBm", 
                "AMDWHF8tkBLvGPwQx", 
                "MtZQjZqwptcY4MJXm", 
                "47oDynBoQifNyhG9u", 
                "QFWQLFyLvpzvfn9Nb", 
                "gWtx6YZW5sPehiksC"
            ],
            "subs" : [ 
                "HcPjMYdG7FcxhRuFj", 
                "REs5NdgicB3wYwr8F", 
                "ad7z4NnoqMsLWyhpt", 
                "ux7HCjzSpw25JYe7r"
            ],
            "score" : 19,
            "finalLineup" : [ 
                "DmwbPcTpPKoPQqJe6", 
                "4Csv4LDHmCku4p2d7", 
                "4cWjs7kjweQhTg5gq", 
                "BaRu7TonDB8iKhzdC", 
                "6xvdipvf8PNNgaB4d", 
                "A3vPEhAmhoMYA8iBm", 
                "AMDWHF8tkBLvGPwQx", 
                "MtZQjZqwptcY4MJXm", 
                "47oDynBoQifNyhG9u", 
                "REs5NdgicB3wYwr8F", 
                "HcPjMYdG7FcxhRuFj"
            ],
            "finalSubs" : [ 
                "gWtx6YZW5sPehiksC", 
                "QFWQLFyLvpzvfn9Nb", 
                "ad7z4NnoqMsLWyhpt", 
                "ux7HCjzSpw25JYe7r"
            ],
            "autoSubs" : [ 
                {
                    "in" : "HcPjMYdG7FcxhRuFj",
                    "out" : "gWtx6YZW5sPehiksC"
                }, 
                {
                    "in" : "REs5NdgicB3wYwr8F",
                    "out" : "QFWQLFyLvpzvfn9Nb"
                }
            ]
        }, 
        {
            "lineup" : [ 
                "DmwbPcTpPKoPQqJe6", 
                "4Csv4LDHmCku4p2d7", 
                "4cWjs7kjweQhTg5gq", 
                "BaRu7TonDB8iKhzdC", 
                "6xvdipvf8PNNgaB4d", 
                "A3vPEhAmhoMYA8iBm", 
                "AMDWHF8tkBLvGPwQx", 
                "MtZQjZqwptcY4MJXm", 
                "47oDynBoQifNyhG9u", 
                "QFWQLFyLvpzvfn9Nb", 
                "gWtx6YZW5sPehiksC"
            ],
            "subs" : [ 
                "HcPjMYdG7FcxhRuFj", 
                "REs5NdgicB3wYwr8F", 
                "ad7z4NnoqMsLWyhpt", 
                "ux7HCjzSpw25JYe7r"
            ],
            "score" : 14,
            "finalLineup" : [ 
                "DmwbPcTpPKoPQqJe6", 
                "4Csv4LDHmCku4p2d7", 
                "4cWjs7kjweQhTg5gq", 
                "BaRu7TonDB8iKhzdC", 
                "6xvdipvf8PNNgaB4d", 
                "A3vPEhAmhoMYA8iBm", 
                "AMDWHF8tkBLvGPwQx", 
                "MtZQjZqwptcY4MJXm", 
                "47oDynBoQifNyhG9u", 
                "ux7HCjzSpw25JYe7r", 
                "HcPjMYdG7FcxhRuFj"
            ],
            "finalSubs" : [ 
                "gWtx6YZW5sPehiksC", 
                "REs5NdgicB3wYwr8F", 
                "ad7z4NnoqMsLWyhpt", 
                "QFWQLFyLvpzvfn9Nb"
            ],
            "autoSubs" : [ 
                {
                    "in" : "HcPjMYdG7FcxhRuFj",
                    "out" : "gWtx6YZW5sPehiksC"
                }, 
                {
                    "in" : "ux7HCjzSpw25JYe7r",
                    "out" : "QFWQLFyLvpzvfn9Nb"
                }
            ]
        }, 
        {
            "lineup" : [ 
                "DmwbPcTpPKoPQqJe6", 
                "4Csv4LDHmCku4p2d7", 
                "4cWjs7kjweQhTg5gq", 
                "BaRu7TonDB8iKhzdC", 
                "6xvdipvf8PNNgaB4d", 
                "A3vPEhAmhoMYA8iBm", 
                "AMDWHF8tkBLvGPwQx", 
                "MtZQjZqwptcY4MJXm", 
                "47oDynBoQifNyhG9u", 
                "QFWQLFyLvpzvfn9Nb", 
                "gWtx6YZW5sPehiksC"
            ],
            "subs" : [ 
                "HcPjMYdG7FcxhRuFj", 
                "REs5NdgicB3wYwr8F", 
                "ad7z4NnoqMsLWyhpt", 
                "ux7HCjzSpw25JYe7r"
            ],
            "score" : 11,
            "finalLineup" : [ 
                "DmwbPcTpPKoPQqJe6", 
                "4Csv4LDHmCku4p2d7", 
                "4cWjs7kjweQhTg5gq", 
                "BaRu7TonDB8iKhzdC", 
                "6xvdipvf8PNNgaB4d", 
                "A3vPEhAmhoMYA8iBm", 
                "AMDWHF8tkBLvGPwQx", 
                "MtZQjZqwptcY4MJXm", 
                "47oDynBoQifNyhG9u", 
                "QFWQLFyLvpzvfn9Nb", 
                "HcPjMYdG7FcxhRuFj"
            ],
            "finalSubs" : [ 
                "gWtx6YZW5sPehiksC", 
                "REs5NdgicB3wYwr8F", 
                "ad7z4NnoqMsLWyhpt", 
                "ux7HCjzSpw25JYe7r"
            ],
            "autoSubs" : [ 
                {
                    "in" : "HcPjMYdG7FcxhRuFj",
                    "out" : "gWtx6YZW5sPehiksC"
                }
            ]
        }, 
        {
            "lineup" : [ 
                "DmwbPcTpPKoPQqJe6", 
                "4Csv4LDHmCku4p2d7", 
                "4cWjs7kjweQhTg5gq", 
                "BaRu7TonDB8iKhzdC", 
                "6xvdipvf8PNNgaB4d", 
                "A3vPEhAmhoMYA8iBm", 
                "AMDWHF8tkBLvGPwQx", 
                "MtZQjZqwptcY4MJXm", 
                "47oDynBoQifNyhG9u", 
                "QFWQLFyLvpzvfn9Nb", 
                "gWtx6YZW5sPehiksC"
            ],
            "subs" : [ 
                "HcPjMYdG7FcxhRuFj", 
                "REs5NdgicB3wYwr8F", 
                "ad7z4NnoqMsLWyhpt", 
                "ux7HCjzSpw25JYe7r"
            ],
            "score" : 13,
            "finalLineup" : [ 
                "DmwbPcTpPKoPQqJe6", 
                "4Csv4LDHmCku4p2d7", 
                "4cWjs7kjweQhTg5gq", 
                "BaRu7TonDB8iKhzdC", 
                "6xvdipvf8PNNgaB4d", 
                "A3vPEhAmhoMYA8iBm", 
                "AMDWHF8tkBLvGPwQx", 
                "MtZQjZqwptcY4MJXm", 
                "47oDynBoQifNyhG9u", 
                "QFWQLFyLvpzvfn9Nb", 
                "HcPjMYdG7FcxhRuFj"
            ],
            "finalSubs" : [ 
                "gWtx6YZW5sPehiksC", 
                "REs5NdgicB3wYwr8F", 
                "ad7z4NnoqMsLWyhpt", 
                "ux7HCjzSpw25JYe7r"
            ],
            "autoSubs" : [ 
                {
                    "in" : "HcPjMYdG7FcxhRuFj",
                    "out" : "gWtx6YZW5sPehiksC"
                }
            ]
        }, 
        {
            "lineup" : [ 
                "DmwbPcTpPKoPQqJe6", 
                "4Csv4LDHmCku4p2d7", 
                "4cWjs7kjweQhTg5gq", 
                "BaRu7TonDB8iKhzdC", 
                "6xvdipvf8PNNgaB4d", 
                "A3vPEhAmhoMYA8iBm", 
                "AMDWHF8tkBLvGPwQx", 
                "MtZQjZqwptcY4MJXm", 
                "47oDynBoQifNyhG9u", 
                "QFWQLFyLvpzvfn9Nb", 
                "gWtx6YZW5sPehiksC"
            ],
            "subs" : [ 
                "HcPjMYdG7FcxhRuFj", 
                "REs5NdgicB3wYwr8F", 
                "ad7z4NnoqMsLWyhpt", 
                "ux7HCjzSpw25JYe7r"
            ],
            "score" : 18,
            "finalLineup" : [ 
                "DmwbPcTpPKoPQqJe6", 
                "4Csv4LDHmCku4p2d7", 
                "4cWjs7kjweQhTg5gq", 
                "BaRu7TonDB8iKhzdC", 
                "6xvdipvf8PNNgaB4d", 
                "A3vPEhAmhoMYA8iBm", 
                "AMDWHF8tkBLvGPwQx", 
                "MtZQjZqwptcY4MJXm", 
                "REs5NdgicB3wYwr8F", 
                "QFWQLFyLvpzvfn9Nb", 
                "HcPjMYdG7FcxhRuFj"
            ],
            "finalSubs" : [ 
                "gWtx6YZW5sPehiksC", 
                "47oDynBoQifNyhG9u", 
                "ad7z4NnoqMsLWyhpt", 
                "ux7HCjzSpw25JYe7r"
            ],
            "autoSubs" : [ 
                {
                    "in" : "HcPjMYdG7FcxhRuFj",
                    "out" : "gWtx6YZW5sPehiksC"
                }, 
                {
                    "in" : "REs5NdgicB3wYwr8F",
                    "out" : "47oDynBoQifNyhG9u"
                }
            ]
        }, 
        {
            "lineup" : [ 
                "DmwbPcTpPKoPQqJe6", 
                "4Csv4LDHmCku4p2d7", 
                "4cWjs7kjweQhTg5gq", 
                "BaRu7TonDB8iKhzdC", 
                "6xvdipvf8PNNgaB4d", 
                "A3vPEhAmhoMYA8iBm", 
                "AMDWHF8tkBLvGPwQx", 
                "MtZQjZqwptcY4MJXm", 
                "47oDynBoQifNyhG9u", 
                "QFWQLFyLvpzvfn9Nb", 
                "gWtx6YZW5sPehiksC"
            ],
            "subs" : [ 
                "HcPjMYdG7FcxhRuFj", 
                "REs5NdgicB3wYwr8F", 
                "ad7z4NnoqMsLWyhpt", 
                "ux7HCjzSpw25JYe7r"
            ]
        }
    ]
}
3
  • seems to be working for me. is there a way you can add sample data that you use for testing ? just an fyi, its a zero based index. Commented Dec 13, 2016 at 22:09
  • This works for me as well. I would guess that the problem is that the history.15 needs to be history.14. Commented Dec 13, 2016 at 22:16
  • I've added a sample document that should pass the test, playing around with the index doesn't work for me. Commented Dec 13, 2016 at 23:05

1 Answer 1

1

So to simplify the answer a bit, say we an an array a with 3 different bits of data:

> db.test.find()
{ "_id" : ObjectId("585145ee8b5e4bf7a33373ee"), "a" : [ { "i" : 0 }, { "i" : 1 } ] }
{ "_id" : ObjectId("585145f68b5e4bf7a33373ef"), "a" : [ { "i" : 0 }, { "i" : 1 }, null ] }
{ "_id" : ObjectId("585146038b5e4bf7a33373f0"), "a" : [ { "i" : 0 }, { "i" : 1 }, { "i" : 2 } ] }

for simplicity for this example we'll check the index of 2, we can do this using the aggregation framework:

var index = 2;

db.test.aggregate([
    { $project: { indexValue: { $arrayElemAt: [ '$a', index ] } } },
    { $match: { 'indexValue' : { $ne: null } } }
])

This will then output the following:

{ "_id" : ObjectId("585146038b5e4bf7a33373f0"), "indexValue" : { "i" : 2 } }

Which matches your criteria, but weirdly enough if you do

db.test.find({ 'a.2' : { $ne: null } } )

It does not match any documents, guessing this is something to do with accessing the index of the array?

Anyway for more information on matching null and none existing documents, See - https://docs.mongodb.com/manual/tutorial/query-for-null-fields/#equality-filter

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.