MongoDB - Mongoose:文档结构/体系结构(MongoDB - Mongoose: document structure/architecture)
我有一个相对简单的问题,然而,我一直被卡住,一遍又一遍。 我认为这是我第四次尝试重新构建我的文档以尝试获得理想的结果。
我想用以下结构在猫鼬中创建一个数据库:
用户有许多组 , 帖子和评论 。 组 , 帖子和评论都属于用户 。 帖子可以属于很多组 ,或者没有。 评论属于某个帖子 。
这是我到目前为止:
UserSchema
var userSchema = mongoose.Schema({ local : { email : String, password : String, username : String, created: {type:Date, default: Date.now} } });
PostSchema
var PostSchema = new Schema({ url: String, highlighted: String, comment: String, image: String, timeStamp: String, description: String, title: String, created: {type:Date, default: Date.now}, private: Boolean, favorite: Boolean, readlater: Boolean, postedBy: { type: mongoose.Schema.Types.ObjectId, ref: 'User' }, comments: [{ text: String, postedBy: { type: mongoose.Schema.Types.ObjectId, ref: 'User' } }], groups: [{ name: String, postedBy: { type: mongoose.Schema.Types.ObjectId, ref: 'User' } }] });
groupSchema
var GroupSchema = Schema({ name : String, created: {type:Date, default: Date.now}, postedBy: { type: mongoose.Schema.Types.ObjectId, ref: 'User' } });
虽然我可能在这个假设上是错误的,但我认为我已经向用户发表了评论,并且发表了评论,以仅仅以它应该的方式发布关系。 如果我错了,请纠正我。 我现在面临的主要问题是与我的小组发布关系。 目前,根本没有任何关系。 据我所知,就好像这个小组属于这个职位,而不是相反。 我能想到构建团队的唯一方式就是这样:
var GroupSchema = Schema({ name : String, created: {type:Date, default: Date.now}, postedBy: { type: mongoose.Schema.Types.ObjectId, ref: 'User' }, posts: [{ title: String, Url: String, comments: [{ text: String }] etc.... }] });
我在上面的结构中可以看到的唯一问题是该帖子将被要求成为一个组的一部分,我希望这个组成为可选组。 所以据我所知,这也行不通。
如果有什么建议可以提供关于这应该如何结构,这将帮助我很大。
先谢谢你。
I have a relatively simple question, however, I keep getting stuck, over and over again. I think this is the fourth time I have tried to re-structure my documents to try and get the desired result.
I want to create a database in mongoose with the following structure:
A User has many groups, posts and comments. The groups, posts and comments all belong to a User. A post can belong to many groups, or none. And a comment belongs to a certain post.
Here is what I have so far:
UserSchema
var userSchema = mongoose.Schema({ local : { email : String, password : String, username : String, created: {type:Date, default: Date.now} } });
PostSchema
var PostSchema = new Schema({ url: String, highlighted: String, comment: String, image: String, timeStamp: String, description: String, title: String, created: {type:Date, default: Date.now}, private: Boolean, favorite: Boolean, readlater: Boolean, postedBy: { type: mongoose.Schema.Types.ObjectId, ref: 'User' }, comments: [{ text: String, postedBy: { type: mongoose.Schema.Types.ObjectId, ref: 'User' } }], groups: [{ name: String, postedBy: { type: mongoose.Schema.Types.ObjectId, ref: 'User' } }] });
groupSchema
var GroupSchema = Schema({ name : String, created: {type:Date, default: Date.now}, postedBy: { type: mongoose.Schema.Types.ObjectId, ref: 'User' } });
Although I may be wrong on this assumption, I think I have the post to user and comment to post relationship just the way it should be. Please correct me if I am wrong. The main problem I am having right now is with my group to post relationship. Currently, there is no relationship at all. As far as I can, it is almost as if the group belongs to the post, instead of the other way around. The only other way I can think to structure the group would be like so:
var GroupSchema = Schema({ name : String, created: {type:Date, default: Date.now}, postedBy: { type: mongoose.Schema.Types.ObjectId, ref: 'User' }, posts: [{ title: String, Url: String, comments: [{ text: String }] etc.... }] });
The only problem I can see in the structure above is that the post will be required to be part of a group, which I want to be optional. So as far as I can tell, this will not work either.
If there is any advice you can provide in regards to how this should be structured, it would help me greatly.
Thank you in advance.
原文:https://stackoverflow.com/questions/33932925
最满意答案
Try this...
$('.demoClass').find('option[value="1"]').remove();
This utilizes the Attribute Equals Selector
相关问答
更多-
尝试这个... $('.demoClass').find('option[value="1"]').remove(); 这利用了属性等于选择器 Try this... $('.demoClass').find('option[value="1"]').remove(); This utilizes the Attribute Equals Selector
-
jQuery:选择属性大于值的所有元素(jQuery: Selecting all elements where attribute is greater than a value)[2021-12-16]
您可以使用.filter()的函数重载来执行此操作,如下所示: .filter(function() { return $(this).attr("attrName") > "someValue"; }) You can do this using the function overload of .filter(), like this: .filter(function() { return $(this).attr("attrName") > "someValue"; }) -
这是一个最简单的解决方案,一个清晰的选择器: function select_option(i) { return $('span#span_id select option[value="' + i + '"]').html(); } Here's the simplest solution with a clear selector: function select_option(i) { return $('span#span_id select option[value="' + i + ...
-
jQuery按名称选择元素(jQuery selecting elements by name)[2023-07-22]
另外,没有“名称”属性。 改用$(..).attr('name') 。 // Pozdrawiam;)/ [“问候”,in polish];) also, there's no "name" property. Use $(..).attr('name') instead. // Pozdrawiam ;) / ["greetings", in polish] ;) -
几点观察 需要使用类adminBox监听输入,而不是所有复选框 使用checked属性查看是否已选中 adminBox是一个不是名字的类 使用.val()来设置select元素的值 它应该是 $("input.adminBox").change(function () { if (this.checked){ $("#role").val('admin'); } else { $("#role").val('sei'); } }); 演示: 小提琴 ...
-
当您调用.html()获取表格单元格的内容时,您将获得所有前导和尾随空白以及您感兴趣的文本; 另外,你应该使用.text()而不是.html()以防万一。 所以,只需使用replace删除空格: var s = $('#time').text().replace(/\s/g, '').split(':'); 演示: http : //jsfiddle.net/ambiguous/xmgAu/ When you call .html() to get the table cell's content you ...
-
更改一个选择选项会改变许多其他选项(JavaScript,JQuery)(Changing one select option changes many others (JavaScript, JQuery))[2022-04-17]
$('select').change(function(){ var v = $(this).val(); $('select option[value="'+$(this).data('old-val')+'"]').prop('disabled', false); $(this).data('old-val',v); if(v != "0"){ $('select option[value="'+v+'"]').not(this).prop('disabl ... -
JQUery:在动态生成的选择选项列表中选择一个值(JQUery: selecting a value in a dynamically generated list of select options)[2022-05-27]
从注释/聊天中得到的澄清结果表明,加载器和setter函数是异步的,但它们是顺序调用的,因此当调用setter时,可能不会调用选项.... 您需要确保在加载器完成加载选项值后调用setter ...您可以使用回调机制来执行此操作。 阅读更多: 在这个答案中 From the clarification got from the comments/chats it turns out that loader and setter functions are async but they are called ... -
使用jQuery在FireFox中从隐藏框中选择选项有问题(Having Issue on Selecting Option From Hidden Box in FireFox With jQuery)[2021-09-20]
您的HTML是错误的,因为HTML5不允许按钮内的交互式元素(例如选择)。您无法在按钮内添加选择。 在这里为你修好: 这是工作演示 HTML: Local
International
你快到了。 请给: var a = $(".select1 option:selected").attr("value"); 或者给这个: var a = $(".select1").val(); 您需要获取相关文章
更多- MongoDB的体系结构_深入浅出MongoDB(三)
- 快速了解MongoDB【基本概念与体系结构】
- MongoDB: The Definitive Guide
- mongodb删除文档操作-使用shell和java操作mongodb文档
- mongodb添加集合文档操作-使用shell和java操作mongodb文档
- 对比下HBase, Memcached, MongoDB, Redis和Solr
- Solr从Mongodb索引数据(上) 借助mongodb-jdbc和配置JdbcDataSource
- solr mongoDB 对比
- Mongodb与spring集成(2)------实体映射
- MongoDB集成Hadoop进行统计计算
最新问答
更多- 在ios 7中的UITableView部分周围绘制边界线(draw borderline around UITableView section in ios 7)
- Java中的不可变类(Immutable class in Java)
- 寻求多次出现的表达式(Seeking for more than one occurrence of an expression)
- linux只知道文件名,不知道在哪个目录,怎么找到文件所在目录
- Actionscript:检查字符串是否包含域或子域(Actionscript: check if string contains domain or subdomain)
- 懒惰地初始化AutoMapper(Lazily initializing AutoMapper)
- 使用hasclass为多个div与一个按钮问题(using hasclass for multiple divs with one button Problems)
- Windows Phone 7:检查资源是否存在(Windows Phone 7: Check If Resource Exists)
- EXCEL VBA 基础教程下载
- RoR - 邮件中的动态主体(部分)(RoR - Dynamic body (part) in mailer)
- 无法在Google Script中返回2D数组?(Can not return 2D Array in Google Script?)
- JAVA环境变量的设置和对path , classpth ,java_home设置作用和目的?
- mysql 关于分组查询、时间条件查询
- 如何使用PowerShell匹配运算符(How to use the PowerShell match operator)
- Effective C ++,第三版:重载const函数(Effective C++, Third edition: Overloading const function)
- 如何用DELPHI动态建立MYSQL的数据库和表? 请示出源代码。谢谢!
- 带有简单redis应用程序的Node.js抛出“未处理的错误”(Node.js with simple redis application throwing 'unhandled error')
- 使用前端框架带来哪些好处,相对于使用jquery
- Ruby将字符串($ 100.99)转换为float或BigDecimal(Ruby convert string ($100.99) to float or BigDecimal)
- 高考完可以去做些什么?注意什么?
- 如何声明放在main之后的类模板?(How do I declare a class template that is placed after the main?)
- 如何使用XSLT基于兄弟姐妹对元素进行分组(How to group elements based on their siblings using XSLT)
- 在wordpress中的所有页面的标志(Logo in all pages in wordpress)
- R:使用rollapply对列组进行求和的问题(R: Problems using rollapply to sum groups of columns)
- Allauth不会保存其他字段(Allauth will not save additional fields)
- python中使用sys模块中sys.exit()好像不能退出?
- 将Int拆分为3个字节并返回C语言(Splitting an Int to 3 bytes and back in C)
- 在SD / MMC中启用DDR会导致问题吗?(Enabling DDR in SD/MMC causes problems? CMD 11 gives a response but the voltage switch wont complete)
- sed没有按预期工作,从字符串中间删除特殊字符(sed not working as expected, removing special character from middle of string)
- 如何将字符串转换为Elixir中的函数(how to convert a string to a function in Elixir)