2016-02-12 39 views
2

我是新來的mongodb.I有這種類型的收集結構。mongodb中的反向索引表

{ 
    "user1":["l1","l2","l3","l4","l5"] 
    "user2":["l2","l3",l4","l7"] 
    "user3":["l7,"l5"] 
} 

所以我想這個集合轉換成反向索引形式

{ 
     "l1":[user1] 
     "l2":[user1,user2] 
     "l3":[user1,user2] 
     "l4":[user1,user2] 
     "l5":[user1,user3] 
     "l7":[user2,user3] 
} 

我怎麼能寫相同的MongoDB的查詢?

回答

0

我想你應該明白在你的文檔中用戶*和l *是非常不同的實體。由於Mongo存儲JSON文檔,用戶是一個鍵,而l *是一個值。我相信只有使用Mongo查詢才能將其轉換爲另一種。如果您需要準確使用此文檔方案,則應使用某個應用程序從Mongo下載數據並繼續。您可以在Mongo Console中使用Java Script作爲最簡單的方法。 另一個是是改變計劃,

{'name':'user1', 'l':['l1','l2','l3','l4','l5']} 
    {'name':'user2', 'l':['l2','l3','l4','l7']} 
    {'name':'user3', 'l':['l7','l5']} 

,然後使用聚合框架

db.users.aggregate([{$unwind:'$l'},{$group:{_id:'$l',users:{$push:'$name'}}}])