Meteor Mongo不工作,但独立的MongoDB工作

Meteor Mongo not working but standalone MongoDB is

本文关键字:工作 独立 MongoDB Mongo Meteor      更新时间:2023-09-26

我有以下文档

{
    "_id" : ObjectId("5464e68481f8252e74f6e0ef"),
    "message" : "Hello World!",
    "timestamp" : ISODate("2014-11-13T17:12:36.547Z"),
    "sender" : "D3EkLv8vatX3xfCGE",
    "receiver" : [
        {
            "id" : "YzhZchz4AwCAd3q2R",
            "seen" : false
        },
        {
            "id" : "sm2W28EKYmHz29Aoj",
            "seen" : false
        }
    ],
    "saved" : false
}

这是基本结构。现在我想获取所有具有当前用户ID的文档。ID可以在sender字段中,也可以在receiver数组中的一个对象中。这很好:

db.messages.find({ sender: "D3EkLv8vatX3xfCGE" })

但是以下查询在Meteor Mongo实例上不起作用,但在Mongo 2.6中起作用:

db.messages.find({ receiver: {id: "YzhZchz4AwCAd3q2R"} })

我有什么办法让它发挥作用吗。此外,上面的查询在Minimongo上有效,但在Meteor的捆绑mongo(meteor mongo)上不起作用,后者目前是v2.4.9版本。

在mongo shell上,这个查询似乎有效:

db.messages.find({ "receiver.id": "YzhZchz4AwCAd3q2R"} )

您可以在选择器中使用receiver.id找到所有特定用户的文档,如下所示:

Messages.find({'receiver.id': 'YzhZchz4AwCAd3q2R'})

如果你想找到特定用户是接收者发送者的所有文档,你可以这样做:

var id = 'YzhZchz4AwCAd3q2R';
Messages.find({$or: [{'receiver.id': id}, {sender: id}]});