我有这个结构:
"_id": NumberInt(1),
"link_id": {
"1000748": {
"pi": NumberInt(34),
"li": NumberInt(8)
},
"1002836": {
"pi": NumberInt(21),
"li": NumberInt(1002836)
}
}
我想进行查询以仅选择带有'pi'=>的link_ids 34.我试过php $res = $collection->findOne(array("_id" => intval($_catids['categoryid']))
,array("linkid.$.pi" => intval(34)));
没有成功。有任何想法吗?很多!
答案 0 :(得分:1)
首先,我建议将MongoId
对象用于_id
字段,其中有很多选项和很多有用的功能
但是没有回答这个问题,查询如下:
{
"linked_id.pi": 34
}
然后你翻译成PHP它是
array(
'linked_id.pi' => 34,
)
然后根据你想要的结果,你需要使用find或findOne