在Mongoose中,如何找到对象具有特定键/值的对象数组?

时间:2015-06-29 19:45:08

标签: arrays mongodb mongoose

在Mongoose模型Person中,有一组名为matches的对象。

matches看起来像

     [
        {
            "$oid": "558ced061d35bd072e7b5825"
        },
        {
            "$oid": "558ced061d35bd072e7b58a0"
        },
        {
            "$oid": "558ced061d35bd072e7b58c6"
        }
    ],

我想创建一个查询,查找Person数组中包含ID的matches

问题是匹配查询似乎只适用于字符串数组,如

models.Person.find({matches: 558ced061d35bd072e7b58c6})

但不适用于包含字符串值的对象数组。

有谁知道如何做到这一点?

1 个答案:

答案 0 :(得分:0)

您可以将字符串强制转换为ObjectId,并在查询中使用该字符串,如下所示:

var mongoose = require("mongoose"),
    person_id  = mongoose.Types.ObjectId("558ced061d35bd072e7b58c6");

models.Person.find({ "matches": person_id }).exec(callback);