我没有mongodb的经验。有对象,例如书籍,我可以将它们存储为
{
"_id" : ObjectId("52ed37cb395d461424d81d51"),
"book" : {
"@id" : "1",
"@date" : "2012-02-01",
"title" : "XML Developer's Guide",
"price" : "44.95",
"description" : "An in-depth look at creating applications with XML."
}
}
{
"_id" : ObjectId("52ed37cb395d461424d81d52"),
"book" : {
"@id" : "2",
"@date" : "2013-10-16",
"author" : "Mark Colsberg",
"title" : "Dolor sit amet",
"price" : "5.95",
"description" : "Lorem ipsum"
}
}
或在一个文件中
{
"_id" : ObjectId("52ed1df5395d46189868ae96"),
"catalog" : {
"book" : [{
"@id" : "1",
"@date" : "2012-02-01",
"title" : "XML Developer's Guide",
"price" : "44.95",
"description" : "An in-depth look at creating applications with XML."
}, {
"@id" : "2",
"@date" : "2013-10-16",
"author" : "Mark Colsberg",
"title" : "Dolor sit amet",
"price" : "5.95",
"description" : "Lorem ipsum"
}]
}
}
哪个选项是存储创建构面搜索信息的更好方法?
答案 0 :(得分:0)
我认为您需要将每本书作为不同的文档存储在文档的书籍集中 - 使用第一种方法。
“分面搜索”是什么意思? 如果你想要文本搜索,mongodb有这个 - http://docs.mongodb.org/manual/core/index-text/
答案 1 :(得分:0)
这取决于您的应用程序如何访问您的数据。如果您通常对数据具有读取权限,我将使用第二个选项。如果您经常更新数据,第一个选项可能是更好的选择。
请记住,NoSQL与关系系统不同。当您以最适合您的应用程序的方式设计数据时,NoSQL的效果最佳。
答案 2 :(得分:0)
对于方面搜索,您将需要使用当前类似Solr / Elastic Search / Sphinx /的实际FTS技术。
MongoDB目前不是为分面搜索而设计的。