My First Object is
conversation = {
"members": [
"613aa457e8d5f249922e7f86",
"613aa457e8d5f249922e7faa"
],
"_id": "613aace085dee060fdeb6a9c",
}
My Second object is
message = {
"read": false,
"_id": "613aadd58becf96394001efa",
"sender": "613aa457e8d5f249922e7f86",
"text": "hi",
"conversation_id": "613aadcc8becf96394001ee8",
}
My Expected Result is
{
"members": [
"613aa457e8d5f249922e7f86",
"613aa457e8d5f249922e7faa"
],
"_id": "613aace085dee060fdeb6a9c",
"message": {
"read": false,
"_id": "613aadd58becf96394001efa",
"sender": "613aa457e8d5f249922e7f86",
"text": "hi",
"conversation_id": "613aadcc8becf96394001ee8",
}
}
At First I tried with spread operator by following this link
let new_object= { ...conversation, messages }
and i got the result something like this
I also tried with these way by following stack-overflow
let new_object= Object.assign(conversation, message);
let new_object= Object.assign({},conversation, message);
But I don't get my expected result.
It looks like you might be loading your data from mongoose, which by default is going to decorate your objects such that they aren't the "plain old javascript objects" you think they are.
Mongoose provides a toObject method on Document that can convert an object you loaded from the DB to the plain object you're expecting. You probably want to do something like this:
// assume conversationFromDb and messageFromDb are Mongoose documents
const conversation = conversationFromDb.toObject();
const message = messageFromDb.toObject();
const newObject = { ...conversation, message };