我試圖找出如何顯示所有文件用戶可以訪問,但我無論是在獲得全部或不確定user.docs沒有文件,如果人沒有登錄。如何查詢用戶在mongodb中有權訪問的所有文檔?
流星,我的用戶有
docs: {
"xxx1",
"xxx2",
"xxx3"
}
等(也可能是IDS的無限數量。 如何查詢蒙戈找到具有ID = user.docs所有文件?(文檔返回數組)。
我試圖找出如何顯示所有文件用戶可以訪問,但我無論是在獲得全部或不確定user.docs沒有文件,如果人沒有登錄。如何查詢用戶在mongodb中有權訪問的所有文檔?
流星,我的用戶有
docs: {
"xxx1",
"xxx2",
"xxx3"
}
等(也可能是IDS的無限數量。 如何查詢蒙戈找到具有ID = user.docs所有文件?(文檔返回數組)。
「如果一個人沒有記錄'?我假設這是服務器端?
你想抓住'文檔'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();
使用$in
算子找到一個數組中的_ids
:
const docIds = Meteor.users.findOne(id).docs;
const myDocs = Docs.find({_id: {$in: docIds }});
我曾經嘗試都和最終使用
docs = getDocsForUser(user); //print array of docs
return docs.find({_id: {$in: docs}})