javascript - 如何在猫鼬中将对象保存为子集合引用的子对象?
问题描述
我已经搜索了两天,无法为我的问题找到提示或解决方案。
在 Firebase 中,我们使用 db 引用和子引用将对象存储在特定路径和集合中。我想在 mongodb 和节点应用程序中做同样的事情。让我用例子来解释我的问题。
我有 mongodb,其中包含用户、消息、订单的集合。
消息模型
'use strict';
var mongoose = require('mongoose'),
Schema = mongoose.Schema,
ObjectId = Schema.ObjectId;
var messageSchema = mongoose.Schema({
ObjectId: ObjectId,
sender_id: String,
receiver_id: String,
sender_name: String,
receiver_name: String,
time_stamp: String,
message_text: String,
is_seen: String,
channel_id: String,
message_type: String
})
;
var Message = mongoose.model('Message', messageSchema);
var exports = module.exports = Message;
现在我想使用消息作为消息/RUNTIME_GENERATED_ID/消息的子级。
在firebase中,我只是放置参考并保存数据,如果没有同名的子集合,firebase会自动创建子集合。我想在 mongodb 中使用 mongoose 做同样的事情。
解决方案
以下是可以解决您的问题的两个简单选项: 1)在您的集合中添加 parent_id 字段,并在 parent_id 中保存父消息文档的 mongo 对象 ID。
2)您可以创建数组类型的child_messages 属性,并且可以将子消息完整文档推送到child_message 数组中。
我希望它有所帮助。
推荐阅读
- php - 从 Android 将 Firebase 令牌插入我的 sql 表
- c++ - C++ 调用 Struct 及其继承成员的默认构造函数
- python - python os.walk 显示混合的 windows 和 unix 路径
- python - Pandas 中的问题:在加载到 df 时正确合并和迭代平均?
- angular - Angular 构建到 NPM 包将 RXJS 运算符作为完整路径导入
- reactjs - 反应,动态生成选项卡时出错
- c# - 仅执行 db.SaveChanges() 时如何修复“无法跟踪实体类型 XXX 的实例”
- reactjs - 三.js每秒调用函数不帧
- python - Python 3 中的可扩展板
- jquery - 如何修复“客户”显示对象对象