我有一个结构如下的文档,有两种类型的子文档。第二个子文档指的是一些第一个子文档,但不是全部
var snippet = new schema{
data:string,
questions:[question],
answers:[answer]
};
var question = new schema{
questiontext:string
}
var answers = new schema{
answertext :string,
questionsAnswered : []
}
这里的“答案文本”需要链接到多个问题,因为一个答案可以对多个问题有效。
在答案模式中,我应该如何存储问题。我不想再次存储问题对象数据,因为它将是重复的数据,并且如果一些问题被修改,那么它需要在问题中被修改回答子文档。所以基本上我想存储问题的_id回答。
猫鼬中回答模式的语法是什么?目前我有空数组,但不确定这是否是好的方法
这个答案来得有点晚,但万一有人需要解决方案。。。
你可以照你所做的去做。但是,我认为你在寻找这样的东西:
var mongoose = require('mongoose'),
Schema = mongoose.Schema;
var question = new Schema({
questionText: String
});
var answers = new Schema ({
answertext: String,
questionsAnswered : [{
type: Schema.ObjectId,
ref: 'question'
}]
});
这将允许您存储引用存储的问题文档的ObjectIds数组。严格来说,您不需要使用ObjectId,而是可以将_ids存储为Strings,如果您有理由这样做的话。
...
questionsAnswered : [String]
...
但是,您必须自己处理逻辑,将objectid转换为字符串,反之亦然。因此,您可以将问题的_id值存储在[]数组中,但同样,您需要自己处理任何逻辑/转换。
问题内容: 我在子文档的Mongoose中尝试执行findOne查询,但运气不佳… 我的架构如下所示: 我只需要从我使用此查询的文档中查找用户的电子邮件 任何帮助,将不胜感激! 问题答案: 您缺少对象的级别,因此您的代码需要更改为以下内容:
问题内容: 我对在我的主模式中使用子文档和更深层的优缺点感到好奇: 要么 我目前在各处使用子文档,但主要是想知道性能或查询我可能遇到的问题。 问题答案: 根据文档,它是完全一样的。但是,使用Schema也会添加一个字段(只要您没有禁用该字段),并且大概会使用更多资源来跟踪子文档。 备用声明语法 v3中的新增功能 如果不需要访问子文档架构实例,则还可以通过简单地传递对象文字来声明子文档[…]
问题内容: 我的文件 夹Folder 具有以下架构: 因此,对于每个页面,我可以拥有许多权限。在CMS中,有一个面板,其中列出了所有文件夹及其权限。管理员可以编辑一个权限并保存。 我可以很容易地用其权限数组保存整个 Folder 文档,其中只修改了一个权限。但是我不想保存所有文档(实际架构中包含更多字段),所以我这样做了: 但是问题是 烫发 总是 不确定的 !我试图以这种方式“静态地”获取许可:
考虑以下Firestore结构: 收藏 现在,我想查询宠物满足某些条件的人。例如,拥有两只以上宠物的人,或者拥有一只名为“ABC”的宠物的人。 这可能吗?
对于那些使用Firebase(FiRecovery)的人来说,您可以拥有一个包含文档的集合,其中每个文档都有一个id,然后一个集合可以保存一个子集合(相当于嵌入文档作为文档数组作为属性)。 然后,这个子集合可以容纳许多文档,而每个文档都有一个id。 在Firestore中,子集合是延迟加载的。 它将获取该集合上的文档,但如果有一个或多个子集合,它将不会检索该集合,除非特别转到该路径。e、 g:集合
问题内容: 我刚刚陷入这个问题。我有两种猫鼬模式: 问题是,如何从每个父文档中获取所有子文档(在这种情况下为对象)?假设我有一些数据: 我想通过一个查询来检索所有18岁以上的孩子。每个答案将不胜感激,谢谢! 问题答案: 您可以在最新的MongoDB版本中用作查询投影运算符。从mongo shell: 这会从数组中过滤掉较小的儿童文档: 如您所见,子代仍在其父文档中分组。MongoDB查询返回集合中