如果我在mongodb文档中有一个包含数组的字段,例如:
"tags" : [ "tag", "etc1", "etc2", "etc3" ]
如果它包含元素'etc1',我有没有办法选择该文件?
如果我尝试使用查询:
db.coll.find({"tags" : { $elemMatch: { value0: 'etc1'} }})
但我需要知道数组中元素的位置,我不知道。
我也尝试过:
db.coll.find({"tags" : { $elemMatch: 'etc1' }})
但它必须是一个对象。有没有办法做到这一点?
NB我使用的是猫鼬,但我不确定如何构建查询
答案 0 :(得分:4)
使用this question或this other question中所述的$in
运算符,如mongodb docs中所述,可以是accessed in mongoose。
有了它,您将会看到类似这样的查询...... remembering that you must pass an array when using $in:
db.coll.find({"tags" : { $in : ['etc1'] } } );
答案 1 :(得分:3)
除了使用$ in运算符之外,您还可以使用$ all运算符,如:
db.col1.find({"tags":{$all :["etc1"]}})