国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專(zhuān)欄INFORMATION COLUMN

mongodb數(shù)組字段prefix匹配返回

魏明 / 967人閱讀

摘要:結(jié)構(gòu)對(duì)表的所有數(shù)據(jù)做過(guò)濾,返回中以開(kāi)頭的元素表原數(shù)據(jù)返回?cái)?shù)據(jù)示例數(shù)據(jù)庫(kù)隨機(jī)構(gòu)建表返回只保留了符合過(guò)濾規(guī)則的第一個(gè)元素,順序不能換返回將一個(gè)文檔拆分成多個(gè)文檔返回?cái)?shù)組元素包含字符串返回

DOC: https://docs.mongodb.com/manu...

collection(test)結(jié)構(gòu)
{
    _id: Objectd("123456789"),
    category: [
        "apple_1",
        "apple_2",
        "banana_1",
        "banana_2"
    ]
}
Question:

對(duì)test表的所有數(shù)據(jù)做category過(guò)濾,返回category中以apple開(kāi)頭的元素

表原數(shù)據(jù):

[    
    {
        _id: Objectd("id1"),
        category: [
            "apple_1",
            "apple_2",
            "banana_1",
            "banana_2"
        ]
    },
    {
        _id: Objectd("id2"),
        category: [
            "apple_3",
            "apple_4",
            "banana_1",
            "banana_2"
        ]
    }
    ...
]

返回?cái)?shù)據(jù)示例:

[    
    {
        _id: Objectd("id1"),
        category: [
            "apple_1",
            "apple_2"
        ]
    },
    {
        _id: Objectd("id2"),
        category: [
            "apple_3",
            "apple_4"
        ]
    }
    ...
]



數(shù)據(jù)庫(kù)try:隨機(jī)構(gòu)建test表

function getRandomArrayElements(arr, count) {
    var shuffled = arr.slice(0), i = arr.length, min = i - count, temp, index;
    while (i-- > min) {
        index = Math.floor((i + 1) * Math.random());
        temp = shuffled[index];
        shuffled[index] = shuffled[i];
        shuffled[i] = temp;
    }
    return shuffled.slice(min);
}
var temp = ["apple_1","apple_2","banana_3","banana_4","pear_5","pear_6","pear_7"];
for(var i =0; i < 10; i ++){
    db.getCollection("test").insert({
            category:getRandomArrayElements(temp, Math.random()*7)
    })
}

Try 1:
db.test.find({},{"category":{
    "$elemMatch":{
        $regex: "apple"
    }
}})

返回:

[    
    {
        _id: Objectd("id1"),
        category: [
            "apple_1",
        ]
    },
    {
        _id: Objectd("id2"),
        category: [
            "apple_3",
        ]
    }
    ...
]
category只保留了符合過(guò)濾規(guī)則的第一個(gè)元素
Try 2:
db.test.aggregate(
    {
        $unwind: "$category"
    },
    {
        $match: {
            category: {
             $regex: "apple_"
            }
        }
    },
    //unwind,match順序不能換
)

返回:

[    
    {
        _id: Objectd("id1"),
        category: "apple_1"
    },
    {
        _id: Objectd("id1"),
        category: "apple_2"
    },
    {
        _id: Objectd("id2"),
        category: "apple_3"
    },
    {
        _id: Objectd("id2"),
        category: "apple_4"
    }
    ...
]
將一個(gè)文檔拆分成多個(gè)文檔返回
Try 3(Solution):
db.test.aggregate({
    $project: {
        "category":{
            $filter: {
                input: "$category",
                as: "cate",
                cond: {
                    // category數(shù)組元素cate包含字符串"apple_"
                    $eq: [ {
                        $indexOfCP: ["$$cate", "apple_"]
                    }, 0] 
                }
            }
        }
    }
})

返回:

[    
    {
        _id: Objectd("id1"),
        category: [
            "apple_1",
            "apple_2"
        ]
    },
    {
        _id: Objectd("id2"),
        category: [
            "apple_3",
            "apple_4"
        ]
    }
    ...
]

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/19472.html

相關(guān)文章

  • MongoDB指南---11、使用復(fù)合索引、$操作符如何使用索引、索引對(duì)象和數(shù)組、索引基數(shù)

    摘要:操作符如何使用索引有一些查詢(xún)完全無(wú)法使用索引,也有一些查詢(xún)能夠比其他查詢(xún)更高效地使用索引。有時(shí)能夠使用索引,但是通常它并不知道要如何使用索引。索引對(duì)象和數(shù)組允許深入文檔內(nèi)部,對(duì)嵌套字段和數(shù)組建立索引。 上一篇文章:MongoDB指南---10、索引、復(fù)合索引 簡(jiǎn)介下一篇文章:MongoDB指南---12、使用explain()和hint()、何時(shí)不應(yīng)該使用索引 1、使用復(fù)合索引 在多...

    saucxs 評(píng)論0 收藏0
  • MongoDB指南---11、使用復(fù)合索引、$操作符如何使用索引、索引對(duì)象和數(shù)組、索引基數(shù)

    摘要:操作符如何使用索引有一些查詢(xún)完全無(wú)法使用索引,也有一些查詢(xún)能夠比其他查詢(xún)更高效地使用索引。有時(shí)能夠使用索引,但是通常它并不知道要如何使用索引。索引對(duì)象和數(shù)組允許深入文檔內(nèi)部,對(duì)嵌套字段和數(shù)組建立索引。 上一篇文章:MongoDB指南---10、索引、復(fù)合索引 簡(jiǎn)介下一篇文章:MongoDB指南---12、使用explain()和hint()、何時(shí)不應(yīng)該使用索引 1、使用復(fù)合索引 在多...

    tomlingtm 評(píng)論0 收藏0
  • MongoDB指南---8、特定類(lèi)型的查詢(xún)

    摘要:但有時(shí)我們希望返回與查詢(xún)條件相匹配的任意一個(gè)數(shù)組元素。首先,可以使用要求同時(shí)使用查詢(xún)條件中的兩個(gè)語(yǔ)句與一個(gè)數(shù)組元素進(jìn)行比較。 上一篇文章:MongoDB指南---7、find簡(jiǎn)介與查詢(xún)條件下一篇文章:MongoDB指南---9、游標(biāo)與數(shù)據(jù)庫(kù)命令 如第2章所述,MongoDB的文檔可以使用多種類(lèi)型的數(shù)據(jù)。其中有一些在查詢(xún)時(shí)會(huì)有特別的表現(xiàn)。 4.3.1 null null類(lèi)型的行為有點(diǎn)奇...

    娣辯孩 評(píng)論0 收藏0
  • MongoDB指南---8、特定類(lèi)型的查詢(xún)

    摘要:但有時(shí)我們希望返回與查詢(xún)條件相匹配的任意一個(gè)數(shù)組元素。首先,可以使用要求同時(shí)使用查詢(xún)條件中的兩個(gè)語(yǔ)句與一個(gè)數(shù)組元素進(jìn)行比較。 上一篇文章:MongoDB指南---7、find簡(jiǎn)介與查詢(xún)條件下一篇文章:MongoDB指南---9、游標(biāo)與數(shù)據(jù)庫(kù)命令 如第2章所述,MongoDB的文檔可以使用多種類(lèi)型的數(shù)據(jù)。其中有一些在查詢(xún)時(shí)會(huì)有特別的表現(xiàn)。 4.3.1 null null類(lèi)型的行為有點(diǎn)奇...

    baiy 評(píng)論0 收藏0
  • 在node中的mongodb及mongoose常見(jiàn)用法

    摘要:是在環(huán)境下對(duì)進(jìn)行便捷操作的對(duì)象模型工具安裝一開(kāi)始需要安裝環(huán)境以及數(shù)據(jù)庫(kù),然后創(chuàng)建數(shù)據(jù)文件夾并且啟動(dòng)安裝啟動(dòng)。出錯(cuò)返回符合條件的文檔數(shù)。修改后的標(biāo)題同上取反,刪除一個(gè)字段執(zhí)行后字段不存在增減修改器,只對(duì)數(shù)字有效。 Mongoose是在node.js環(huán)境下對(duì)mongodb進(jìn)行便捷操作的對(duì)象模型工具 安裝 一開(kāi)始需要安裝node.js環(huán)境以及mongodb數(shù)據(jù)庫(kù),然后創(chuàng)建mongdb數(shù)據(jù)文件...

    liuhh 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

魏明

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<