2017-01-30 81 views
0

我試圖找出如何顯示所有文件用戶可以訪問,但我無論是在獲得全部或不確定user.docs沒有文件,如果人沒有登錄。如何查詢用戶在mongodb中有權訪問的所有文檔?

流星,我的用戶有

docs: { 
    "xxx1", 
    "xxx2", 
    "xxx3" 
} 

等(也可能是IDS的無限數量。 如何查詢蒙戈找到具有ID = user.docs所有文件?(文檔返回數組)。

回答

0

「如果一個人沒有記錄'?我假設這是服務器端?

你想抓住'文檔'Meteor.user()嗎? 只適用於當前登錄的用戶。在用戶

服務器端的MongoDB查詢:

Meteor.users.findOne({_id: '<userId string here>'},{fields: {docs: 1}}); 

應該給你:

{_id: '<userId string here>', docs: {...docs here...}} 

小心用戶數據!

編輯:

如果你想從一個用戶對象匹配文檔ID的文檔,你會非常重新安排你的數據結構來

docs: ['docId', 'docId'] <---this may be your main problem 

那麼這將是:

var userDocsIds = Meteor.users.findOne({_id: '<userId string here>'},{fields: {docs: 1}}); 

var userDocs = Docs.find({_id: {$in: userDocsIds.docs}}).fetch(); 
0

使用$in算子找到一個數組中的_ids

const docIds = Meteor.users.findOne(id).docs; 
const myDocs = Docs.find({_id: {$in: docIds }}); 
0

我曾經嘗試都和最終使用

docs = getDocsForUser(user); //print array of docs 
return docs.find({_id: {$in: docs}}) 
相關問題