Mongodb 具有限制和跳过的多个条件的Mongo查询

Mongodb 具有限制和跳过的多个条件的Mongo查询,mongodb,mongodb-query,Mongodb,Mongodb Query,db中所有集合的文档格式如下: { "_id": { "$oid": "5e0983863bcf0dab51f2872b" }, "word": "never", // get the `word` value for each of below queries "wordset_id": "a42b50e85e", "meanings": [{ "id": "1f1bca9d9f", "def": "no

db
中所有集合的文档格式如下:

{
    "_id": {
        "$oid": "5e0983863bcf0dab51f2872b"
    },
    "word": "never",  // get the `word` value for each of below queries
    "wordset_id": "a42b50e85e",
    "meanings": [{
        "id": "1f1bca9d9f",
        "def": "not ever",
        "speech_part": "adverb",
        "synonyms": ["ne'er"]
    }, {
        "id": "d35f973ed0",
        "def": "not at all",
        "speech_part": "adverb"
    }]
}
我正在尝试查询单词

1) 其中,单词
length
4
speech\u part
名词
包含
ac
(%something%在sql中)(结果是
jack
,…)

2) 如何在单个查询中添加所有三个
开头、
结尾、
包含
(例如:以
j
开头、包含
ac
、以
k
结尾将给出
jack

我已经尝试了1)年,作为:

但是我没有得到这个结果,还有如何为聚合添加skip和limit,我应该使用
facet

参考上述答案,我发现:

db.Order.aggregate([
    { '$match'    : { "company_id" : ObjectId("54c0...") } },
    { '$sort'     : { 'order_number' : -1 } },
    { '$facet'    : {
        metadata: [ { $count: "total" }, { $addFields: { page: NumberInt(3) } } ],
        data: [ { $skip: 20 }, { $limit: 10 } ] // As shown here------
    } }
] )

参考
Pythonic
管道如下所示:

    pipeline = [
            {
                '$match': {
                    "$expr": {"$eq": [{"$strLenCP": "$word"}, 4]},
                    'word': re.compile('ac'),
                    'meanings.speech_part': "noun"
                }
            }
        ]

删除此代码中的引号“/ac/”
,并将其更改为
“word”:/ac/
,它就可以工作了。@prasad_uu如何在compass中选中此项以获得结果,compass-->聚合-->?有一个选择聚合阶段下拉框。单击该按钮,选择阶段并添加聚合代码。然后使用下面的添加阶段按钮添加更多阶段。我尝试了完全相同的方法,但没有结果。下面是使用说明。
    pipeline = [
            {
                '$match': {
                    "$expr": {"$eq": [{"$strLenCP": "$word"}, 4]},
                    'word': re.compile('ac'),
                    'meanings.speech_part': "noun"
                }
            }
        ]