查询mongodb

时间:2014-02-01 18:39:57

标签: mongodb

我没有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"
      }]
  }
}

哪个选项是存储创建构面搜索信息的更好方法?

3 个答案:

答案 0 :(得分:0)

我认为您需要将每本书作为不同的文档存储在文档的书籍集中 - 使用第一种方法。

“分面搜索”是什么意思? 如果你想要文本搜索,mongodb有这个 - http://docs.mongodb.org/manual/core/index-text/

答案 1 :(得分:0)

这取决于您的应用程序如何访问您的数据。如果您通常对数据具有读取权限,我将使用第二个选项。如果您经常更新数据,第一个选项可能是更好的选择。

请记住,NoSQL与关系系统不同。当您以最适合您的应用程序的方式设计数据时,NoSQL的效果最佳。

答案 2 :(得分:0)

对于方面搜索,您将需要使用当前类似Solr / Elastic Search / Sphinx /的实际FTS技术。

MongoDB目前不是为分面搜索而设计的。