是否有任何簡單的方法可以在查詢中查找孤立的引用?我有一個有父引用的元素集合。在一些父母被刪除後,我想搜索指向它們的元素,即那些具有掛起引用的元素。在集合中查找orhphaned DBRef
我試過各種語法,但都沒有工作。
是否有任何簡單的方法可以在查詢中查找孤立的引用?我有一個有父引用的元素集合。在一些父母被刪除後,我想搜索指向它們的元素,即那些具有掛起引用的元素。在集合中查找orhphaned DBRef
我試過各種語法,但都沒有工作。
不是,因爲mongodb是非關係型的,所以您需要自己找到所有關係。所有驅動程序通過請求任何引用來解決客戶端引用。在你的情況下,你需要通過所有類別,並嘗試加載父母的情況下,如果父母不存在 - 刪除孩子或做任何你想要的。 DBREF documentation
假設:
parentCollection
,childCollection
childCollection.parentRefId
父,然後,你可以刪除所有通過向mongo發出以下命令來懸掛兒童物體:
db.childCollection.find().forEach(function(f) {
if(f.parentRefId && !db.parentCollection.findOne({ _id: f.parentRefId})) {
db.childCollection.remove({ parentRefId: f.parentRefId });
}
});
db.childCollection.find().forEach(function(f) {
if(f.refKey && db.parentCollection.find({ "_id": f.refKey.$id}).count() != 1) {
db.childCollection.remove({ _id: f._id });
}
});
這已經很平靜很適合我..
這就是我做的。問題是如何找到他們的服務器端(在查詢中)。 –
答案是你不能在查詢中做到這一點。 –