这是'对话'的对象结构。集合
{
"_id" : ObjectId("5536028a33e52be617b8bb2a"),
"messages" : [
{
"from" : ObjectId("5534c58ac2bda5fe18cfcb97"),
"_id" : ObjectId("5536028a33e52be617b8bb2b"),
"created" : ISODate("2015-04-21T07:55:54.572Z"),
"read" : false,
"message" : "dummy message",
"participants" : [
ObjectId("5534c58ac2bda5fe18cfcb97"),
ObjectId("5530af38576214dd3553331c")
]
}
],
"participants" : [
ObjectId("5530af38576214dd3553331c")
],
"__v" : 0
}
使用以下代码我得到了对象
collection.findById(id,function(err,conv){})
现在使用这个对象我需要找出参与者数组(在对象内)是否包含对象id '5530af38576214dd3553331c'
。如何使用mongoose在对象内找到?
答案 0 :(得分:0)
您可以使用find()
方法,您的查询对象将包含id
和participants
字段:
var mongoose = require("mongoose");
var participant_id = mongoose.Types.ObjectId("5530af38576214dd3553331c");
var query = { _id: id, participants: participant_id };
Conversation.find(query)
.exec(function(err, conv){
// Handle err
});
答案 1 :(得分:0)
你可以使用mongoose find
collection.find({participants: <your participant id here>}).exec(callback)