查找 Mongodb 文档,如果它包含 mongoose 中的数组中的元素
Posted
技术标签:
【中文标题】查找 Mongodb 文档,如果它包含 mongoose 中的数组中的元素【英文标题】:Find a Mongodb document if it contains an element in the array in mongoose 【发布时间】:2014-05-19 12:59:43 【问题描述】:如果我在 mongodb 文档中有一个包含数组的字段,例如:
"tags" : [ "tag", "etc1", "etc2", "etc3" ]
如果该文档包含元素“etc1”,我是否可以选择该文档? 如果我尝试使用查询:
db.coll.find("tags" : $elemMatch: value0: 'etc1' )
但我需要知道元素在数组中的位置,我不知道。 我也试过:
db.coll.find("tags" : $elemMatch: 'etc1' )
但它必须是一个对象。有没有办法做到这一点?
注意我正在使用猫鼬,但我不确定如何构建查询
【问题讨论】:
请不要发布诸如“但如果它需要是一个对象”之类的声明。请实际展示您的真实数据以及您实际尝试执行的操作。更改名称以保护无辜者,但显示您的实际需求。 【参考方案1】:使用$in
运算符,如this question 或this other question 中所述以及mongodb docs 中所述,并且可以是accessed in mongoose。
有了它,你会得到一个看起来像这样的查询...remembering that you must pass an array when using $in:
db.coll.find("tags" : $in : ['etc1'] );
【讨论】:
【参考方案2】:除了使用 $in 运算符,您还可以使用 $all 运算符,例如:
db.col1.find("tags":$all :["etc1"])
【讨论】:
以上是关于查找 Mongodb 文档,如果它包含 mongoose 中的数组中的元素的主要内容,如果未能解决你的问题,请参考以下文章