在Mongoose模型Person
中,有一组名为matches
的对象。
matches
看起来像
[
{
"$oid": "558ced061d35bd072e7b5825"
},
{
"$oid": "558ced061d35bd072e7b58a0"
},
{
"$oid": "558ced061d35bd072e7b58c6"
}
],
我想创建一个查询,查找Person
数组中包含ID的matches
。
问题是匹配查询似乎只适用于字符串数组,如
models.Person.find({matches: 558ced061d35bd072e7b58c6})
但不适用于包含字符串值的对象数组。
有谁知道如何做到这一点?
答案 0 :(得分:0)
您可以将字符串强制转换为ObjectId,并在查询中使用该字符串,如下所示:
var mongoose = require("mongoose"),
person_id = mongoose.Types.ObjectId("558ced061d35bd072e7b58c6");
models.Person.find({ "matches": person_id }).exec(callback);