【发布时间】:2019-04-08 02:12:11
【问题描述】:
我在 mongodb 中创建了会话模型。在集合中,我想插入文档,每个文档必须有 user1、user2 和我要插入的对话数组。
对话架构:
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
// Create Schema
const ConversationSchema = new Schema({
user1: {
type: String,
required: true
},
user2: {
type: String,
required: true
},
conversations : [{ type: Schema.Types.ObjectId, ref: 'Message' }]
});
module.exports = mongoose.model('Conversation', ConversationSchema);
消息架构:
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
// Create Schema
const MessageSchema = new Schema({
author: {
type: String,
required: true,
},
message: {
type: String,
required: true
},
date: {
type: Date,
default: Date.now
}
});
module.exports = mongoose.model('Message', MessageSchema);
现在从客户端我将接收 user1 和 user2 即用户名,这是一个字符串和两者之间的对话。现在,如果有多个用户说 user1, user2, user3, ... 那么我想检查任何 2 个用户之间是否存在对话让我们说 user1 和 user2 如果存在,那么只需 $push new message inside 对话,否则创建新对话并保持关于将消息添加到现有对话数组。我怎样才能在 mongodb 中做到这一点?
【问题讨论】:
-
至少你必须上网搜索才能直接在这里提问
-
@AlokDeshwal 我不知道
upsert我搜索了很多但找不到。 -
我只是在谷歌上复制并粘贴你的问题,我找到了答案,第一个结果
-
@AlokDeshwal 你能分享链接吗?
-
@AlokDeshwal 你能帮帮我吗-> stackoverflow.com/questions/53150727/…
标签: mongodb