我有一个<dependencies>
文档,该文档引用了许多<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
个文档,而这些文档又引用了其他文档:
Playlist
另一个文档Song
引用了一个/** @Document(collection="playlists") */
class Playlist
{
/**
* @var \Doctrine\Common\Collections\Collection
*
* @ReferenceMany(targetDocument="Song", simple=true)
*/
protected $songs;
}
/** @Document(collection="songs") */
class Song
{
/**
* @var string
*
* @ReferenceOne(targetDocument="Foo", simple=true)
*/
protected $foo;
/**
* @var string
*
* @ReferenceOne(targetDocument="Bar", simple=true)
*/
protected $bar;
}
:
Like
每次我坚持(插入)一个新的Playlist
文档时,会加载一些引用(深层次或非深层次)(执行大量相关查询);在这种特定情况下,这是无用的。
如何避免这种“贪婪”行为(模型重构,配置,缓存等)?
答案 0 :(得分:1)
使用手动参考:
https://docs.mongodb.org/manual/reference/database-references/#manual-references
简而言之,在与其关联的<?php
$data = file_get_contents('demo.txt');
$lines= split("\n",$data);
?>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
<script type="text/javascript">
var textarray = <?php echo json_encode($lines); ?>;
function RndText() {
var rannum= Math.floor(Math.random()*textarray.length);
$('#text').text(textarray[rannum]);
console.log(textarray[rannum]+" "+rannum+" "+textarray.length);
}
$(document).ready(function(){
$('#text').hide();
$('#random').click(function(){
$('#text').show();
RndText();
});
});
</script>
<body>
<div id="text"></div>
<button id="random">RANDOM</button>
</body>
中存储"List"
个ID。
然后当您更改Articles
时,您不需要加载所有相关文章。
您可以使用以下内容获取给定“列表”的所有文章:
"List"
我认为db.articles.find({"listId" : "foo"})
集合的目的会发生变化 - 不确定而不会看到您的架构。这是引用"List"
的原因。