我如何支持MongoDb中的“可标记”内容?

时间:2013-12-06 11:45:58

标签: c# mongodb nosql

我如何在MongoDb中实现以下要求:

  • 记录可以包含文本和/或图像,多个字段,通常是非结构化文档
  • 可以使用关键字或关键短语标记记录
  • 通过使用关键字和/或关键短语进行搜索来检索记录
  • 应该可以使用逻辑运算符 - AND,OR,NOT等在搜索中组合关键字
  • 不需要制作可自行搜索的记录(尽管很不错)

我对MongoDb完全陌生,所以宝贝步骤赞赏!

1 个答案:

答案 0 :(得分:3)

MongoDB旨在管理非结构化文档,因此当您的文档具有不同的结构时,MongoDB可能非常适合。但请记住,当您想要有效地查询文档时,它们应该有一组要查询的公共字段。

通过将所有相关关键字存储在每个文档的字符串数组中,可以轻松完成关键字标记。 MongoDB可以透明地查询数组。如果你有这样的文件:

{
      somefield: "somevalue",
      someotherfield: "somemothervalues",
      tags: ["politics", "potato", "achieve world domination"]
}

您可以使用db.collection.find({tags:"potato"})找到它。 MongoDB还可以透明地索引数组。使用db.collection.ensureIndex({tags:1})创建索引时,即使您有许多包含许多不同关键字组合的文档,也会大大提高查询速度。

关于逻辑运算符:MongoDB有这些。请参阅$in(OR运算符),$all(数组的AND运算符)和$nin(多运算符的非运算符)

Full text search是一项目前标记为实验性的功能。您已经可以在开发中使用它,但不应该在生产中使用它。