【发布时间】:2013-08-17 22:06:53
【问题描述】:
所以我有这个线程架构(它几乎是一个聊天室:)
var threadSchema = mongoose.Schema({
messages: [{
message:String,
type:String
}],
point_id:String
});
我编译成模型如图:
var Thread = mongoose.model('Thread',threadSchema);
我的问题是当我像这样访问线程对象中的消息元素时:
console.log(thread_instance.messages);
它打印出'[object Object]'。即使我在浏览器中解析它也会这样做;它实际上是返回那个字符串 '[object Object]'。
我相信这与我如何推送到数组有关:
this_thread.messages.push({message:data.message,type:data.type});
我的写作/阅读方式有什么问题?非常感谢您的宝贵时间。
【问题讨论】:
-
直接在mongo中查询数据是什么样子的?
-
当我运行 db.threads.find() 我得到: { "__v" : 4, "_id" : ObjectId("520dc4921ea8dc0000000002"), "messages" : [ "[object Object]" , "[object Object]", "[object Object]", "[object Object]" ], "point_id" : "520dc4921ea8dc0000000001" } 数组中的每个元素都显示为一个对象。
-
数据对象是什么样的?
-
这就是问题所在。它实际上是字符串“[object Object]”。我只需要通过将对象存储为字符串并使其成为字符串数组来破解它。
标签: javascript mongoose