mongodb中按数组数据筛选

mongodb中按数组数据筛选,mongodb,filter,Mongodb,Filter,我有这样一个mongodb数据库: { "_id" : ObjectId("530d24150fef5d9b065909ca"), "data" : "object 1", "my_array" : [ {"arraydata" : "1"}, {"arraydata" : "2"} ] } { "_id" : ObjectId("530d24150fef5d9b065909ca"), "data" : "objec

我有这样一个mongodb数据库:

{
    "_id" : ObjectId("530d24150fef5d9b065909ca"),
    "data" : "object 1",
    "my_array" : [
        {"arraydata" : "1"},
        {"arraydata" : "2"}
    ]
}
{
    "_id" : ObjectId("530d24150fef5d9b065909ca"),
    "data" : "object 2",
}
{
    "_id" : ObjectId("530d24150fef5d9b065909ca"),
    "data" : "object 3",
    "my_array" : [{"arraydata" : "1"}]
}
我想做一个查询,只返回我的数组中包含一些数据的文档,在本例中,它返回了第一个和最后一个

我知道,
$where
语句很慢,所以我想得到一个更好的方法

提前感谢。

通过以下方式获得:

db.document.find({'my_array.0': {$exists: true}})

有更好的方法吗?

如果您知道数组从不存在,但如示例数据中所示为空,则以下方法更简单:

db.c.find({my_数组:{$exists:true}})


但是,如果您想筛选出数组存在但为空的文档,那么您的答案是好的。

可能重复的答案我认为这个答案比我的好,所以我接受它。谢谢