- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试了解 CouchDB
。我正在尝试从 MongoDB
切换到 CouchDB
,因为我认为 views
的概念对我更有吸引力。在 CouchDB 中,看起来所有记录都存储在一个数据库中。没有集合或任何东西的概念,就像在 MongoDB
中一样。那么,当存储不同的数据实体(例如用户、博客文章、评论等)时,如何在 MapReduce 函数中区分它们?我正在考虑只使用某种 type
属性,并且对于每个项目,我只需要确保始终指定 type
。当我阅读 CouchDB
食谱网站时,这种想法得到了强化,其中的示例做了同样的事情。
这是最可靠的方法,还是有更好的方法?我正在考虑替代方案,我认为唯一的其他替代方法就是基本上将尽可能多的内容嵌入到逻辑文档中。就像,数据库内的直接记录都是User
记录,每个User
都会有一个Posts
数组,您只需在其中将所有帖子
添加到。这里的缺点是嵌入文档不会获得自己的 id
属性,对吗?
最佳答案
创建 View
时使用type
方便快捷。或者,您可以考虑使用 JSON 文档的一部分。即,而不是定义:
{
type: "user",
firstname: "John",
lastname: "Smith"
}
你会:
{
user: {
firstname: "John",
lastname: "Smith"
}
}
然后在 View 中发出包含用户
信息的文档,而不是使用:
function (doc) {
if (doc.type === "user") emit(null, doc);
}
你会写:
function (doc) {
if (doc.user) emit(null, doc);
}
正如您所看到的,没有太大区别。正如您已经意识到第一种方法是最广泛使用的,但第二种方法(afaik)被广泛接受。
关于将一个用户
的所有帖子
存储在一个文档中的问题。取决于您计划如何更新文档。请记住,每次更新时都需要编写整个文档(除非您使用附件
)。这意味着每次用户编写新的 Post
时,您都需要检索包含 Posts
的 array
的文档,添加/修改一个元素并更新文档。可能太多(重)。
关于couchdb - 类型属性是在 CouchDB 中存储不同数据实体的正确方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13771780/
你能比较一下属性吗 我想禁用文本框“txtName”。有两种方式 使用javascript,txtName.disabled = true 使用 ASP.NET, 哪种方法更好,为什么? 最佳答案 我
Count 属性 返回一个集合或 Dictionary 对象包含的项目数。只读。 object.Count object 可以是“应用于”列表中列出的任何集合或对
CompareMode 属性 设置并返回在 Dictionary 对象中比较字符串关键字的比较模式。 object.CompareMode[ = compare] 参数
Column 属性 只读属性,返回 TextStream 文件中当前字符位置的列号。 object.Column object 通常是 TextStream 对象的名称。
AvailableSpace 属性 返回指定的驱动器或网络共享对于用户的可用空间大小。 object.AvailableSpace object 应为 Drive 
Attributes 属性 设置或返回文件或文件夹的属性。可读写或只读(与属性有关)。 object.Attributes [= newattributes] 参数 object
AtEndOfStream 属性 如果文件指针位于 TextStream 文件末,则返回 True;否则如果不为只读则返回 False。 object.A
AtEndOfLine 属性 TextStream 文件中,如果文件指针指向行末标记,就返回 True;否则如果不是只读则返回 False。 object.AtEn
RootFolder 属性 返回一个 Folder 对象,表示指定驱动器的根文件夹。只读。 object.RootFolder object 应为 Dr
Path 属性 返回指定文件、文件夹或驱动器的路径。 object.Path object 应为 File、Folder 或 Drive 对象的名称。 说明 对于驱动器,路径不包含根目录。
ParentFolder 属性 返回指定文件或文件夹的父文件夹。只读。 object.ParentFolder object 应为 File 或 Folder 对象的名称。 说明 以下代码
Name 属性 设置或返回指定的文件或文件夹的名称。可读写。 object.Name [= newname] 参数 object 必选项。应为 File 或&
Line 属性 只读属性,返回 TextStream 文件中的当前行号。 object.Line object 通常是 TextStream 对象的名称。 说明 文件刚
Key 属性 在 Dictionary 对象中设置 key。 object.Key(key) = newkey 参数 object 必选项。通常是 Dictionary 
Item 属性 设置或返回 Dictionary 对象中指定的 key 对应的 item,或返回集合中基于指定的 key 的&
IsRootFolder 属性 如果指定的文件夹是根文件夹,返回 True;否则返回 False。 object.IsRootFolder object 应为&n
IsReady 属性 如果指定的驱动器就绪,返回 True;否则返回 False。 object.IsReady object 应为 Drive&nbs
FreeSpace 属性 返回指定的驱动器或网络共享对于用户的可用空间大小。只读。 object.FreeSpace object 应为 Drive 对象的名称。
FileSystem 属性 返回指定的驱动器使用的文件系统的类型。 object.FileSystem object 应为 Drive 对象的名称。 说明 可
Files 属性 返回由指定文件夹中所有 File 对象(包括隐藏文件和系统文件)组成的 Files 集合。 object.Files object&n
我是一名优秀的程序员,十分优秀!