小编squ*_*One的帖子

MongoDB:通过多个条件查询嵌套数组

假设这是我的用户集合中的一项:

  {
    "_id" : "5545f4c4d0dd52c355a99fbe",
    "name" : "Dollie James",
    "device" : "iOS",
    "gender" : "Female",
    "wallet" : [
        {
            "store" : "All Saints",
            "balance" : "$196.11",
            "date" : "2014-02-22T22:09:38 -10:00",
            "tags" : [
                "Tshirt",
                "Summer"
            ]
        },
        {
            "store" : "Nike",
            "balance" : "$367.76",
            "date" : "2014-04-18T14:44:30 -10:00",
            "tags" : [
                "Shoes"
            ]
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

此记录是从以下查询返回的:

db.users.findOne({$and:[{"wallet.tags" : "Tshirt"}, {"wallet.store":"Nike"}]})

然而,这不是我想要的结果,因为 Tshirt 和 Nike 不在钱包数组中的同一个对象中。看来 mongo 正在对整个数组进行查询。如何定位此查询以仅返回数组中同一对象中的两个条件?

mongodb nosql

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

在存在重复项的情况下获取单列的唯一行

我有以下DB列调用messages列:

thread_id, sender_id, receiver_id, date
Run Code Online (Sandbox Code Playgroud)

例:

+-----------+------------+-------------+-------------+
| thread_id | sender_id  | receiver_id |  date       |
+----------------------+-----------+-----------------+
|   1       | 1          |  2          | 11/06/2015  |
|   1       | 2          |  1          | 14/06/2015  |
|   1       | 1          |  2          | 14/06/2015  |
|   1       | 2          |  1          | 20/06/2015  |
|   2       | 1          |  3          | 12/06/2015  |
|   3       | 4          |  2          | 19/06/2015  |
|   3       | 2          |  2          | …
Run Code Online (Sandbox Code Playgroud)

sql sql-server

2
推荐指数
1
解决办法
38
查看次数

标签 统计

mongodb ×1

nosql ×1

sql ×1

sql-server ×1