MongoDB:按标签获取文档

标签 mongodb tags

我有包含 tags 数组的文档。我想在网站上提供基于标签的建议,所以我需要获取包含相同标签的文档 + 不匹配 1 个标签的文档 + 不匹配 2 个标签的文档等等......

我该怎么做?

最佳答案

示例集合:

db.tags.insert({"tags":["red", "tall", "cheap"]});
db.tags.insert({"tags":["blue", "tall", "expensive"]});
db.tags.insert({"tags":["blue", "little", "cheap"]}); 

找出所有包含“蓝色”标签的内容

db.tags.find({tags: { $elemMatch: { $eq: "blue" } }})

找到所有标记为“蓝色”的,只有蓝色的

db.tags.find({tags: "blue"})

找到所有标记为“蓝色”和“便宜”的东西

db.tags.find({ tags: { $all: ["cheap", "blue"] } } )

找出所有不是“蓝色”的

db.tags.find({tags: { $ne: "blue" } })

找到所有“蓝色”和“便宜”,但不是“红色”而不是“高”

在我的 mongo 数据库中不可能。从 mongodb 1.9.1 开始,这样的东西应该可以工作,虽然(未经测试):

db.tags.find({ $and: [ {tags: { $all: ["blue", "cheap"] } }, { tags: { $nin: ["red", "tall"] } } ] })

关于MongoDB:按标签获取文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6940503/

相关文章:

node.js - 有没有办法用 mongoskin 列出集合?

javascript - jquery - 在两个 .filter() 之后获取脚本标签的问题

php - 删除php中嵌套的html标签

java - 从 Java 获取数据到 JSP

html - 如何隐藏 <i class ="abc">content</i> 的内容(字体很棒)

javascript - 提交 POST 并在 Nodejs/EJS 中处理结果

python - 将 mongoengine.connect 从 django 中的 setting.py 中取出

javascript - Mongoose /蒙戈 : A query to find all documents older than five minutes?

python - "ObjectId is not JSON serializable?"时如何正确jsonify Mongo DB文档

php - 尝试使用 PHP 脚本的 CSS 更改表格中替代行的颜色