[英]Collection.find() for array inside object
我有一個Meteor應用,其中包含聊天群組的集合。 此集合中的每個文檔如下所示:
{groupname: 'name', whitelist: ['person1', 'person2', 'person3'], messages:['message1', 'message2', 'message3']}
要向每個有帳戶的人顯示他們屬於哪個組,我需要一個頁面,其中包含允許他們進入的那些組的列表。如何使用find()命令返回所有白名單數組包含以下內容的文檔:用戶名?
像這樣:
ChatGroups.find({whitelist: Meteor.user().username});
假設username
是您要匹配的屬性。 在這種情況下,您無需執行任何特殊操作即可在數組中進行搜索-mongo將做正確的事(將username
與每個whitelist
每個元素進行比較,並返回匹配的文檔)。
要按數組項在MongoDB中搜索-使用$in
運算符:
ChatGroups.find({
whitelist: {
$in: [Meteor.user()._id]
}
});
參考: 比較查詢運算符> $ in
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.