我想在我的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ô"等.
我什么时候应该使用聚合管道?
场景:我有一些像这样的 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 文档按原样存储在树结构中。
还有一个问题来学习如何使用 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
我正在尝试以编程方式从 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)
所有代码: …
我到处都在寻找ObjectIds,就好像它们是蛋糕一样.
这个可以吗?_id田野应该像疯子一样抬头,对吧?
G'day大家,我正在检查Lync PowerShell博客,找不到太多关于按状态(可用,忙等)查询用户的Lync服务器.有这个但是它适用于SDK,任何人都可以举例说明按在线状态检索用户吗?此外,有没有办法区分他们正在运行的Lync类型,因为当用户登录移动设备时,它会有所不同,并且我认为状态显示为"Mobile".
非常感谢!
如果我采取一个简单的查询,比如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;?
我正试图从我的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而不是下载整个集合来做到这一点......
我想对大于或等于,小于或等于(我正在使用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)
有帮助吗?
我正在开发一个使用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
querying ×10
mongodb ×5
angularfire2 ×1
apl ×1
firebase ×1
indexing ×1
indices ×1
java ×1
javascript ×1
lookup ×1
loops ×1
lync ×1
matrix ×1
mongodb-php ×1
mongoose ×1
observable ×1
php ×1
powershell ×1
puppeteer ×1
python ×1
python-3.x ×1
web-scraping ×1