2013-12-21 27 views
0

UPDATE以下查询使用$all工作。我已经更新了相应的问题。mongodb:为一个字段选择两个值

我已经试过这个选择:

[ pack "tags" =: [ pack "$all" =: [pack "city", pack "urban"]]] 

我也已经能够使用"$xxx"式的运营商其他查询,如下所示:

[pack "dueBy" =: [pack "$gt" =: beginningOfTime, pack "$lte" =: readDate stringDate]] 

我有一个字段名为"tags"它被设置为具有标签列表的值。例如,

["tags" := ["city", "urban", "Rochester"]] 

当我构建一个选择检索基于两个标签,我用一个选择,看起来像这样从数据库中的文档:当我尝试

[ pack "tags" =: [ pack "$all" =: [pack "city", pack "urban"]]] 

然而,选择基于在两个标签上,我没有得到任何结果。根据多个标签中的一个标签进行选择会给我正确的结果数量。另外,选择一个标签和优先级(另一个字段)会给我正确的结果数量。

回答

2

对不起,我不知道哈斯克尔,但在JavaScript中,这将是:

db.Note.find({tags: {$all: ['school', '229']} }); 

随着$all您选择其中数组包含所有的值的文件。

+0

谢谢,但我仍然没有发现这个'Query'的结果(在haskell GHCI中打印):'{options = [],selection = Select {selector = [tags:[$ all:[“school”,“ 228“]]],'......' –

+0

228是一个229. –

+0

您可以尝试使用MongoDB CLI验证查询吗?我想知道问题是否是mongo选择逻辑或haskel驱动程序/语法。 – hgoebl

相关问题