标签: querying

MongoDB:如何查找忽略区分大小写,重音和逻辑百分比的文档(%)

我想在我的mongodb数据库中搜索一个集合.在我的收藏中,我有"name"字段的文档可以是以下值:

[i]"PalácioGuanabara","PaláciodaCidade","FestaPalácio"等.

当用户键入"pala"或"palá"或"Pala"或"PalÁ"之类的搜索时,[i]中的所有这些都必须构建结果集.

我发现在MongoDB中我可以在搜索中使用正则表达式,例如:

{ "name": { $regex: new Regex(".*pala.*", "i") } }
Run Code Online (Sandbox Code Playgroud)

好的,这种方法不区分大小写,并使用SQL中的百分比逻辑("%pala%").但是,它不会忽略数据库中寄存器的重音.

我找到了另一个使用$ text索引的替代方法:https://docs.mongodb.org/manual/core/index-text/

这种方法可以忽略区分大小写和重音.但"搜索"不接受正则表达式,因此我无法搜索"%pala%"之类的内容.

总结一下,我想在MongoDB中进行以下SQL查询:

select * from collection where remove_accents(upper(name)) like '%Pala%'
Run Code Online (Sandbox Code Playgroud)

此查询返回的结果名称为"palácio","palacio","PaláCiô"等.

querying case-insensitive mongoose mongodb mongodb-query

5
推荐指数
3
解决办法
8877
查看次数

我们什么时候应该使用mongodb聚合管道?

我什么时候应该使用聚合管道?

场景:我有一些像这样的 mongo db 文档

`

    {
    id:"",
    text:"",
    dept:"",
    group:"",
    parent:"",
    }

`
Run Code Online (Sandbox Code Playgroud)

现在我需要使用父字段准备一个树结构。

`

    tree:[
    {
    id:"",
    text:"",
    dept:"",
    group:"",
    parent:"",
    children:[
       {
         id:"",
         text:"",
         dept:"",
         group:"",
         parent:"",
    }]
    },{
    id:"",
    text:"",
    dept:"",
    group:"",
    parent:"",
    }]

`
Run Code Online (Sandbox Code Playgroud)

现在这个结构可以被大量嵌套。根据我的知识,我可以编写一个聚合管道来制作这个结构。但问题是这个结构将被频繁地准备,就像每次刷新页面时一样。我们应该使用管道还是应该将 json 文档按原样存储在树结构中。

querying mongodb aggregation-framework

5
推荐指数
1
解决办法
1458
查看次数

如何在APL语言中找到满足两个条件的矩阵的第一行的索引?

还有一个问题来学习如何使用 APL 语言。假设您有一个数组,例如:

c1 c2 c3 c4 c5 C6
3 123 0 4 5 6
3 134 0 2 3 4
3 231 180 1 2 5
4 121 0 3 2 4
4 124 120 4 6 3
4 222 222 5 3 5

那么,如何找出第 1 列中哪一行的值为 4,第 3 列中的值大于 0?

预期的答案是第 5 行,仅在 5

lookup querying matrix apl indices

5
推荐指数
1
解决办法
78
查看次数

Puppeteer document.querySelectorAll 仅在循环中返回未定义“TypeError:无法读取未定义的属性(读取'innerHTML')”

我正在尝试以编程方式从 JavaScript 中的https://rarity.tools/upcoming/页面访问表中的数据。由于该网站通过 JavaScript 加载,因此我一直在使用 puppeteer。该网站有多个表(总共 4 个),我希望能够引用每个表并检查它们有多少行。

我最初尝试使用 nth-of-type,但我尝试从中接收数据的网站似乎没有以允许我使用 nth-of-type 或 nth-child 的方式构建其页面(请请参阅:在 javascript 错误中使用 pupeteer 访问第 n 个表并计算行数:“无法找到与选择器“table:nth-of-type(2) > tr”匹配的元素”” )。

相反,我尝试创建一个 for 循环来将每个表的innerHTML 设置为其自己的变量,然后根据索引分析HTML 字符串。如果我对数字进行硬编码,以下内容将返回正确的值:

       console.log(table_html)

        let table_html = await page.evaluate(
            () => document.querySelectorAll('table')[2].innerHTML
        )
Run Code Online (Sandbox Code Playgroud)

但是,一旦我将其设置为循环:

        for (let j = 0; j < numTables; j++) {
            let table_html = await page.evaluate(
                (j) => document.querySelectorAll('table')[j].innerHTML
            )

            console.log(table_html)
        }
Run Code Online (Sandbox Code Playgroud)

我收到错误:

错误:评估失败:TypeError:无法在ExecutionContext._evaluateInternal 处的puppeteer_evaluation_script :1:46 处读取未定义的属性(读取“innerHTML”)(C:\Users\kylel\Desktop\NFTSorter_IsolatedJS\node_modules\puppeteer\lib\cjs
puppeteer\common \ExecutionContext.js:221:19) 在 processTicksAndRejections (internal/process/task_queues.js:95:5) 在异步 ExecutionContext.evaluate (C:\Users\kylel\Desktop\NFTSorter_IsolatedJS\node_modules\puppeteer\lib\cjs\pup peteer\common\ExecutionContext.js:110:16) 在异步获取 (C:\Users\kylel\Desktop\NFTSorter_IsolatedJS\app.js:35:30)

所有代码: …

javascript loops querying web-scraping puppeteer

5
推荐指数
1
解决办法
853
查看次数

在Mongodb中通过ObjectId查找速度有多快?

我到处都在寻找ObjectIds,就好像它们是蛋糕一样.

这个可以吗?_id田野应该像疯子一样抬头,对吧?

indexing querying mongodb

4
推荐指数
2
解决办法
3049
查看次数

Lync - PowerShell - 用户状态

G'day大家,我正在检查Lync PowerShell博客,找不到太多关于按状态(可用,忙等)查询用户的Lync服务器.有这个但是它适用于SDK,任何人都可以举例说明按在线状态检索用户吗?此外,有没有办法区分他们正在运行的Lync类型,因为当用户登录移动设备时,它会有所不同,并且我认为状态显示为"Mobile".

非常感谢!

powershell administration querying lync

4
推荐指数
1
解决办法
8007
查看次数

手动限制Graql查询结果迭代器

如果我采取一个简单的查询,比如match $x isa dog; limit 5; get;当时无论在Grakn中存储了多少只狗,我都会得到5个结果.这很好,但是如果我在查询时不知道有多少只狗,并希望限制我稍后在代码中检索的数字呢?

这是我使用Python客户端的想法:

import grakn
client = grakn.Grakn(uri="localhost:48555")
session = client.session(keyspace="dogs_keyspace")
tx = session.transaction(grakn.TxType.WRITE)

results = tx.query('match $x isa dog; get;')  # I don't limit now, so I can do it later
Run Code Online (Sandbox Code Playgroud)

results 是一个迭代器,所以我不能这样做:

limited_results = list(results)[:5]
Run Code Online (Sandbox Code Playgroud)

因为如果我这样做,那么所有的狗都将被列入清单,然后我将采取前5个,如果我在知识图中有1,000,000只狗,这实在是效率低下.

但我可以说:

limited_results = list(itertools.islice(results, 5))
Run Code Online (Sandbox Code Playgroud)

我应该得到前5只狗而不接触其他999,995只狗.

但我的问题是:这种方法有什么理由比limit 5在查询中提供更慢match $x isa dog; limit 5; get;

python querying python-3.x vaticle-typeql vaticle-typedb

4
推荐指数
1
解决办法
56
查看次数

mongodb php获取字段唯一值

我正试图从我的mongodb集合中的'type'字段中获取一个唯一值列表.以下示例文档:

{
       "_id" : ...,
       "type" : "report",
       "tasks" : ...
}
{
       "_id" : ...,
       "type" : "research",
       "tasks" : ...
}
{
       "_id" : ...,
       "type" : "memo",
       "tasks" : ...
}
{
       "_id" : ...,
       "type" : "memo",
       "tasks" : ...
}
{
       "_id" : ...,
       "type" : "report",
       "tasks" : ...
}
{
       "_id" : ...,
       "type" : "report",
       "tasks" : ...
}
Run Code Online (Sandbox Code Playgroud)

我正在寻找按频率排序的文档类型字段中的唯一类型,因此:

["report", "memo", "research"]
Run Code Online (Sandbox Code Playgroud)

最好的方法是什么?希望我可以通过查询mongo而不是下载整个集合来做到这一点......

php querying mongodb mongodb-php

3
推荐指数
1
解决办法
6082
查看次数

MongoDB:在java中使用$ gte和$ lte进行查询

我想对大于或等于,小于或等于(我正在使用java btw)的字段执行查询.换一种说法.> =和<=.据我所知,mongoDB有$ gte和$ lte运算符,但我找不到合适的语法来使用它.我正在访问的字段是顶级字段.

我设法让这个工作:

FindIterable<Document> iterable = db.getCollection("1dag").find(new Document("timestamp", new Document("$gt", 1412204098)));
Run Code Online (Sandbox Code Playgroud)

还有...

FindIterable<Document> iterable = db.getCollection("1dag").find(new Document("timestamp", new Document("$lt", 1412204098)));
Run Code Online (Sandbox Code Playgroud)

但是你如何将这些相互结合呢?

目前我正在玩这样的声明,但它不起作用:

FindIterable<Document> iterable5 = db.getCollection("1dag").find(new Document( "timestamp", new Document("$gte", 1412204098).append("timestamp", new Document("$lte",1412204099))));
Run Code Online (Sandbox Code Playgroud)

有帮助吗?

java querying mongodb

3
推荐指数
1
解决办法
9086
查看次数

如何正确查询AngularFire2中的Firebase列表?

我正在开发一个使用Firebase作为后端的Angular2应用程序.在子页面上,我想显示由route参数指定的给定周的一些任务.

我通过BehaviorSubject以下方式使用a 作为AngularFire2查询的参数:

export class PrepareComponent implements OnInit {

    private routeSub: any;
    weekId = '';

    private weekSubject: BehaviorSubject<any> = new BehaviorSubject('weekId');

    taskTemplates$: FirebaseListObservable<TaskTemplate[]>;

    constructor(private route: ActivatedRoute,
                private router: Router,
                private angularFire: AngularFire) {

        // this.taskTemplates$ = angularFire.database.list("/taskTemplates");
Run Code Online (Sandbox Code Playgroud)

以下是Firebase查询:

        this.taskTemplates$ = angularFire.database.list("/taskTemplates", {
            query: {
                equalTo: this.weekSubject
            }
        });
    }

    ngOnInit() {
        this.routeSub = this.route.params.map(
            (params: Params) => this.weekId = params[ 'weekid' ]
        ).subscribe(
            weekId => this.weekSubject.next(weekId)
        );
    }

    ngOnDestroy() {
        this.routeSub.unsubscribe();
    }
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,Firebase taskTemplates$observable没有返回给定weekId的任何数据.

我假设一旦weekId …

querying observable firebase firebase-realtime-database angularfire2

3
推荐指数
1
解决办法
1万
查看次数