我对mongoDb很新,我遇到了问题。
我在集合中有这个字段:
data: [ "data1", "data2" ]
为什么这个查询通过控制台工作:
db.collection.find({'data':/ data1 /})
但这不是吗?
$hasData = $this->documentManager->createQueryBuilder('Document\\Collection')
->field('data')->equals( new \MongoRegex('/data1/'))
->count()
->getQuery()
->execute();
我哪里错了?感谢
答案 0 :(得分:0)
我通过添加另一种歧视来解决:
$hasData = $this->documentManager->createQueryBuilder('Document\\Collection')
->field('data')->equals( new \MongoRegex('/data1/'))
->field('_id')->equals(new \MongoId($user->getId()))
->count()
->getQuery()
->execute();
答案 1 :(得分:0)
尝试在字段中添加elemMatch()表达式。
->field('my_field')->elemMatch($qb->expr()->field('data')->equals('data1'))