首页 > 解决方案 > MongoDb 查询未按预期运行

问题描述

我的查询不起作用。我不知道为什么。

我想在返回时收到消息,以便在同一对话中添加更多消息。

我对所有这些东西都是新手,mongoDb 和节点。

询问

  const query = {
    $and: [
      { member1: { $in: [conversation.sender, conversation.receiver] } },
      { member2: { $in: [conversation.sender, conversation.receiver] } }
    ],
  };
  const response = await Conversation.distinct('timestamps', query).exec();

这是我试图在此查询中查找的数据库对象,结果为空且未显示任何错误。

数据库:

{
    "members": [{
        "member1": "5e87f879ac23bb2018be0e73",
        "member2": "5e87e6144da131247407194f",
        "_id": {
            "$oid": "5e88112190e6de5e4826d758"
        }
    }],
    "messages": [{
        "sender": "5e87f879ac23bb2018be0e73",
        "receiver": "5e87e6144da131247407194f",
        "_id": {
            "$oid": "5e88112190e6de5e4826d75a"
        },
        "message": "Cria vergonha",
        "messageAddAt": {
            "$date": {
                "$numberLong": "1585975585995"
            }
        }
    }, {
        "sender": "5e87e6144da131247407194f",
        "receiver": "5e87f879ac23bb2018be0e73",
        "_id": {
            "$oid": "5e88112190e6de5e4826d759"
        },
        "message": "Cria vergonha",
        "messageAddAt": {
            "$date": {
                "$numberLong": "1585975585996"
            }
        }
    }],
    "createdAt": {
        "$date": {
            "$numberLong": "1585975586070"
        }
    },
    "updatedAt": {
        "$date": {
            "$numberLong": "1585975586070"
        }
    },
    "__v": {
        "$numberInt": "0"
    }
}

我已经在 Robo 3T 中对其进行了测试,并且可以正常工作!

db.conversations.find(
{$and: [
      { "members.member1": { $in: ['5e87e6144da131247407194f', '5e87f879ac23bb2018be0e73'] } },
      { "members.member2": { $in: ['5e87e6144da131247407194f', '5e87f879ac23bb2018be0e73'] } }
    ]})

但是在 node.js 中,它没有带来任何结果。

标签: node.jsmongodb

解决方案


推荐阅读