如何查询MongoDB中,一个数组是否包含指定的数据

共 2 个回复


jimmykuu

$in操作符,比如有如下articles的记录:

{ "_id" : ObjectId("5225f0700d4476dc0ed87df1"), "title" : "title1", "tags" : [  "a",  "b",  "c" ] }
{ "_id" : ObjectId("5225f0840d4476dc0ed87df2"), "title" : "title2", "tags" : [  "a",  "b",  "d" ] }

在mongodb shell中:

db.articles.find({tags: {$in: ['a']}})

即可查出所有tags中有'a'的记录。

用labix.org/v2/mgo的话:

c.Find(bson.M{"tags": bson.M{"$in": []string{"a"}}}).All(&articles)
# 0

qkevin123

知道了,多谢。昨天不知到怎么回事,正文部分的内容就是发送不上去。

经过测试,我发现这样也可以:

c.Find(bson.M{"tags": "a"}).All(&articles)
# 1