嵌套的mongodb查询

时间:2017-10-12 13:42:05

标签: node.js mongodb mongoose

我有一个mongoose架构,用于模拟社交网络中的用户。 在其中我想保存用户拥有的所有聊天数组,聊天包括一个responent(用户正在聊天的用户)和一个代表对话的数组。

var userSchema = mongoose.Schema({
    email        : String,
    chats         : [{ respondent : String, conversation : [{ message: String, author : String}]}],
});

如何在包含特定受访者的聊天中找到项目?在找到的项目中,ID就像是将消息推送到对话中。

1 个答案:

答案 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"});