Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
2.6k views
in Technique[技术] by (71.8m points)

javascript - MongoDB BSON Document Size exception

I have created a chat Mongoose model for my chat API. I stored each chat json to messages field of the chat model. I think that when the messages field filled with json the document size increase and it will exceed the 16MB capacity. In that moment I want to create a new document and I want to save the chat messages to that document and i will track these document in other document. So how can i handle the exceed error. I think that i can handle with that error by using try/catch for that reason what is the name of this exception?

Note: I just store the text message there is no binary mesage like video or photograph.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

With mongo is preferable to handle large collection of small document instead of small collection of big documents.

You should change your chat model which must look like this for the moment:

// chat model
{
    _id: ObjectId("/..."),
    title: "...",
    messages: [
        {_id: 1, text: "...."},
        {_id: 2, text: "...."},
        ....
    ]
}

To something like this:

// chat model
{
    _id: ObjectId("/..."),
    title: "..."
}

With a collection of messages references the chat model

 // messages collections
 {
  _id: ObjectId("...."),
  chat_id: "...",
  text: "..."
},

{
  _id: ObjectId("...."),
  chat_id: "...",
  text: "...
},

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...