簡體   English   中英

在Mongoose ODM中按唯一屬性查找嵌入式文檔

[英]Finding embedded document by unique property in Mongoose ODM

我們有以下方案:

var SubsetSchema = new mongoose.Schema({
    number: {
        type: Number,
        index: true,
        unique: true,
    },
    name: String,
});

var RootSchema = new mongoose.Schema({
    name: String,
    subsets: [SubsetSchema],
});

mongoose.model('collection', RootSchema);
var Root = module.exports = mongoose.model('collection');

我如何在number = 3的整個集合中搜索單個Subset文檔?

而且我不清楚。 對於上述模式, number在整個集合中或在每個Root文檔中都是唯一的嗎?

您可以在查詢中使用點符號 ,在投影中使用$位置運算符 ,將輸出過濾為僅匹配的subsets元素,如下所示:

Root.findOne({'subsets.number': 3}, {_id: 0, 'subsets.$': 1}, ...);

關於你的第二個問題, number將被強制執行,獨特的整個集合,但(與直覺相反)仍然被允許中存在多次Root文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM