我按照这个mongodb示例:http://doctrine-mongodb-odm.readthedocs.org/en/latest/tutorials/getting-started.html
我还在弹性搜索中安装了一条mongodb河:https://github.com/richardwilly98/elasticsearch-river-mongodb
一切正常,用户实体在mongodb中有几个帖子实体。在研究elasticsearch时,有以下数据结构:
{
"_index": "doctrine",
"_type": "user",
"_id": "53d7f246e2afecdc03d63af3",
"_score": 1,
"_source": {
"_id": "53d7f246e2afecdc03d63af3",
"email": "email@example.com",
"name": "Bulat S.",
"posts": [
"{ \"$ref\" : \"BlogPost\", \"$id\" : \"53d7f246e2afecdc03d63af1\" }",
"{ \"$ref\" : \"BlogPost\", \"$id\" : \"53d7f246e2afecdc03d63af2\" }"
]
}
}
这看起来也很不错。但我想知道这些帖子的参考。我能想象到的最简单的事情就是像"posts": ["53d7f246e2afecdc03d63af1", "53d7f246e2afecdc03d63af2"]
这样的一组简单的帖子。这将使搜索变得非常容易。但是我怎样才能处理河边提供的标记?在posts
字段中搜索是否有好的查询?为什么"
转义?
答案 0 :(得分:0)
双引号被转义,因为它们在另一组双引号内。如果它们没有被转义,它会过早地发出字符串结束的信号。
您看到DBRef
字段中存储posts
的原因是因为Doctrine使用它们来映射关系。结帐Doctrine - Simple References仅用于存储ObjectId
。