关于MongoDB数据库在 Think PHP 框架下如何只返回一个Document中需要的部分

我现在有如下Document:{"_id":ObjectId("55adddfefe99cee1048b4572"),"topicId":NumberLong(401),... 我现在有如下Document:
{
"_id" : ObjectId("55adddfefe99cee1048b4572"),
"topicId" : NumberLong(401),
"fun" : [
{
"user_id" : NumberLong(401),
"content" : "这就是你们对待用户的方式?",
"fun_status" : NumberLong(0)
},
{
"user_id" : NumberLong(104),
"content" : "是的,用户就是拿来虐待的",
"fun_status" : NumberLong(0)
}
],

"remark_num" : NumberLong(1),
}
我现在需要在thinkPHP框架中使用$model->where(fun.user_id)->select()来查询到
{
"user_id" : NumberLong(104),
"content" : "是的,用户就是拿来虐待的",
"fun_status" : NumberLong(0)
}
这一段Document而不需要另一段,请问有什么方法可以只返回这一段而不会返回整个Document或者数组么?
展开
 我来答
百度网友a19d193
2015-07-21 · TA获得超过3446个赞
知道大有可为答主
回答量:1464
采纳率:100%
帮助的人:1444万
展开全部
这个应该是不能,除非你修改你的数据结构,就像mysql,你把一个数组序列化之后存在一个text字段里面,你能select出来这个值的一部分么?你这个应该也是相同的情况。你把fun单独做表不就可以了。
追问
在不改变数据库结构的情况下有没有什么办法可以达到和额外建表差不多的效果和性能?
【PHP+MongoDB+Apache 的最大优点就是可以随便乱来,然而设计这个数据库的家伙真·不是一般地乱来啊QAQ】
追答
用各种SQL函数,比如正则+字符截取,但是这没有意义,只是给数据库额外的压力,完全可以到php这边处理
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式