mongodb - 如何检查数组字段是否包含唯一值或 MongoDB 中的另一个数组?

我现在正在使用 mongodb。

我有一个 blogpost 集合,它有一个 tags 字段,它是一个数组,例如

blogpost1.tags = ['tag1', 'tag2', 'tag3', 'tag4', 'tag5']
blogpost2.tags = ['tag2', 'tag3']
blogpost3.tags = ['tag2', 'tag3', 'tag4', 'tag5']
blogpost4.tags = ['tag1', 'tag4', 'tag5']

我该如何进行这些搜索

  1. 包含tag1
  2. 包含 ['tag1','tag2']
  3. 包含任何 ['tag3', 'tag4']

最佳答案

试试这个:

db.blogpost.find({ 'tags' : 'tag1'}); //1
db.blogpost.find({ 'tags' : { $all : [ 'tag1', 'tag2' ] }}); //2
db.blogpost.find({ 'tags' : { $in : [ 'tag3', 'tag4' ] }}); //3

https://stackoverflow.com/questions/5366687/

相关文章:

linux - 在 linux/OS X 上启动 mongod 服务的正确方法是什么?

node.js - mongoError : Topology was destroyed

mongodb - 如何解决 MongoDB 中缺少事务的问题?

node.js - 在 Mongoose 中,我如何按日期排序? (node.js)

mongodb - 如何在 mongodb 上导入 .bson 文件格式

mongodb - 如何在一个命令中停止 mongo DB

mongodb - 了解 MongoDB BSON 文档大小限制

mongodb - Node.js Mongoose.js 字符串到 ObjectId 函数

mongodb - Mongodb中的保存和插入有什么区别?

mongodb - 如何更改字段的类型?