我现在正在使用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

Mongodb相关问答推荐

从两个相连的文件中获取电话和邮箱的渠道是什么?

MongoDB - 将数组元素转换为新字段

spring-data-mongodb 上的 TopN 聚合

将子文档中的所有字段设置为 false,然后在单个查询中将第二个字段设置为 true

如何在mongodb中级联删除文档?

如何将记录从一个 mongo 数据库插入另一个?

如何在 Mongoose 中定义一个通用的嵌套对象

Springboot 使用 find*() 查询时出现 Mongodb 错误

使用 MongoDB 更新数组字段内的特定键/值

嵌套在文档数组中的mongodb展开数组

Mongoose 的保存回调是如何工作的?

如何在 Node.js 中格式化 Mongoose 的日期?

为什么使用 Redis 而不是 MongoDb 进行缓存?

MongoDB - 文件大小巨大且不断增长

Mongodb:为什么 show dbs 不显示我的数据库?

MongoDB:如何在 100 个集合中找到 10 个随机文档?

在 MongoDB 中快速搜索数十亿个小文档的策略

如何使用 mgo 从 golang 中的 mongodb 集合中 Select 所有记录

何时使用Singleton单例、Transient和使用 Ninject 和 MongoDB 的请求

将 FilterDefinition 转换为可以在 mongo shell 中运行的常规 json mongo 查询