我有一个mongoose架构,用于模拟社交网络中的用户。 在其中我想保存用户拥有的所有聊天数组,聊天包括一个responent(用户正在聊天的用户)和一个代表对话的数组。
var userSchema = mongoose.Schema({
email : String,
chats : [{ respondent : String, conversation : [{ message: String, author : String}]}],
});
如何在包含特定受访者的聊天中找到项目?在找到的项目中,ID就像是将消息推送到对话中。
答案 0 :(得分:1)
您没有提及内部聊天的任何关键字。像这样指定:
var userSchema = mongoose.Schema({
email : String,
chats : [
{ respondent : String,
innerChat:[{ message: String, author : String}]}
],
});
添加文档解决方案的查询是:
var document={
email:"abc@gmail.com",
chats:[{respondent:"UserName",innerChat:[{message:"hello",author:"authorName"}]}]
}
db.collection.insert(document);
查询内部查询的文件
db.collection.find({"chats.innerChat.author":"authorName"});