1

假设我things在具有此架构的数据库中:

{
    tags: [String]
}

我有这样的tags数组:["tag1", "tag2"]
现在我需要搜索things并只获取那些包含我的标签的数组。

我在这里$where搜索并找到了操作员,但这不是我需要的。 我想知道在 mongo中应该有类似的东西,或者在 mongoose 中应该有类似的东西。有任何想法吗?
db.things.find( { $where: "this.tags.contains(<my tags somehow>)" } );

4

2 回答 2

2

你想要$all

http://www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-%24all

以下是来自 mongoose 的几个示例: https ://github.com/LearnBoost/mongoose/blob/master/test/query.test.js#L396

附带说明,$where通常不可扩展。

于 2012-09-23T05:59:41.700 回答
2

MongoDB 查询语法允许您匹配这样的元素数组:

.find( { tags: 'tag1' } )

而且,当然,它正在与 Mongoose 合作 :)

来源:http ://docs.mongodb.org/manual/tutorial/query-documents/#match-an-array-element

于 2014-01-27T17:06:08.537 回答