我有一个如下的集合。嵌入式风格。问题是查询不会选择具有给定user
的预期ID
。我究竟做错了什么?还有其他更好的办法吗?
注意:如果我从查询中删除了user
位,它会返回所有具有预期statuses
的记录,因此查询本身就可以了。
提前致谢
$query = $dm
->createQueryBuilder('EmMaBundle:Design')
->field('user.id')->equals('53d62b692ac1fb22d9000000')
->field('status')->equals(0);
答案 0 :(得分:1)
1)您应该查询user.$id
2)user.$id
字段包含ObjectId
而不是String
。尝试使用MongoId
例如
$userId = new \MongoId("53d62b692ac1fb22d9000000");
$query = $dm
->createQueryBuilder('EmMaBundle:Design')
->field('user.$id')->equals($userId)
->field('status')->equals(0);
shell查询:
db.collection.find( { 'user.$id': ObjectId("53d62b692ac1fb22d9000000") } )
答案 1 :(得分:0)
$query = $dm
->createQueryBuilder('EmMaBundle:Design')
->field('user._id')->equals('53d62b692ac1fb22d9000000')
->field('status')->equals(0);
嘿那里,
尝试在选择器中使用user._id而不是user.id。