Mongodb查询具有多个字结构的数组

时间:2018-04-25 14:25:32

标签: mongodb

如果mongodb中有一个数组,如下所示:

(word:I)

我想按如下方式查询这个数组:

我需要检查(word which contains word:regex(p.*) and pos:VBZ)$elemMatch是否在此数组中?如果是的话我需要返回该数组。

当我在该数组{"word":"I" and ("word":/p.* and "pos":"VBZ")中按顺序搜索两个条件时,

$ gawk -v ORS= -v RS='2018-' '/this/{print RS $0}' ip.txt 2018-04-25: line2 this is another line I'm a line 没有帮助

任何人都可以帮我解决这个问题吗?

2 个答案:

答案 0 :(得分:0)

我不确定我理解你需要什么,但我认为这就是你在寻找的东西:

db.test.find({
    $and: [
        {
            'tokens.word': 'I'
        },
        {
            tokens: {
                $elemMatch: {
                    word: /p.*/,
                    pos: 'VBZ'
                }
            }
        }
    ]
})

答案 1 :(得分:0)

好吧,我想我得到了你想要的东西,这有点棘手,因为:

  1. 如果你没有public class MyClass { private string CookieName { get; } public MyClass() { CookieName = "TempData" + DateTime.Now.Ticks.ToString(); } } 字段,你会依赖数组元素的顺序,这是不好的做法
  2. 下面的解决方案不是通用的,如果您需要其他参数(例如超过2个元素,更复杂的正则表达式),则很难修改它。
  3. 我想在此解决方案中实现的是index匹配的元素,并检查过滤的索引是否为$filter为1,这意味着它们是按顺序排列的:

    $subtract