Mongodb Mongoose find返回空数组

Mongodb Mongoose find返回空数组,mongodb,mongoose,Mongodb,Mongoose,我有一个mongoDB文档,看起来像这样: { "_id": { "$oid": "5b99247efb6fc01dae438815" }, "participants": [ "5b758a8341ee61f049ded486", "5b94fb4ffb6fc01dae40eae3" ] } Mongoose中的文档模式就是这样定义的 var conversationSchema = new mongoose.S

我有一个mongoDB文档,看起来像这样:

{
    "_id": {
        "$oid": "5b99247efb6fc01dae438815"
    },
    "participants": [
        "5b758a8341ee61f049ded486",
        "5b94fb4ffb6fc01dae40eae3"
    ]
}
Mongoose中的文档模式就是这样定义的

var conversationSchema = new mongoose.Schema({
    participants: [{ type: mongoose.Schema.ObjectId, ref: 'User'}],
});
我正在获取这样的数据

var ccc = Conversation.find({participants : "5b758a8341ee61f049ded486"});
ccc.exec(function(err, conversations){
   res.status(200).json(conversations);
});
问题是我得到的是一个空数组响应
[]

我认为问题出在模式上,但我不知道如何才能让它起作用。 编辑, 如果我将架构更改为以下内容,它将起作用:

var conversationSchema = new mongoose.Schema({
    participants: [{ type: String}],
});

但是我想使用
mongoose.Schema.ObjectId
而不是
字符串
作为外键。

尝试向此行添加类型:

participants: [{ type: mongoose.Schema.Types.ObjectId, ref: 'User'}]

它无法识别数组中的项目,因为它们是字符串,您应该使用类似{“$oid”:“585bb0086c57cd2265b1cbd3”的对象,因此请在数据库中重新插入项目,然后重试。

使用ObjectId强制转换参与者id
Conversation.find({参与者:ObjectId(“5b758a8341ee61f049ded486”)}
尝试了这个
mongoose.Types.ObjectId(“5b758a8341ee61f049ded486”)
但仍然是相同的空数组响应。