首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Minimongo嵌套查询嵌入文档

Minimongo嵌套查询嵌入文档
EN

Stack Overflow用户
提问于 2016-11-20 16:05:17
回答 2查看 75关注 0票数 0

我想在mongodb中搜索一个嵌入文档,只返回我想要的内容。这是文件:

代码语言:javascript
复制
"_id" : "yH8HmCPz6H6E8Hinq",
"between" : [
    "4bgdLrztpqgwAkZP4",
    "9jZhXHjAkoY7mmX7B"
],
"messages" : [
    {
        "content" : "fdsqf",
        "user" : "4bgdLrztpqgwAkZP4",
        "created_at" : ISODate("2016-11-17T23:13:59.659Z"),
        "isSeen" : false,
        "sender" : "John doe",
        "receiver" : "Elen doe"
    },
    {
        "content" : "test",
        "user" : "9jZhXHjAkoY7mmX7B",
        "created_at" : ISODate("2016-11-20T11:42:42.893Z"),
        "isSeen" : false,
        "sender" : "Elen doe",
        "receiver" : "John doe"
    }
]

我想要的是"messages.isSeen“等于false,而接收方不是Meteor.user().username。

最后,如何将该字段更新为真。

希望有人能帮忙!提前谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-11-21 02:00:09

您需要在查询中包括_id,在更新中包括$set

代码语言:javascript
复制
let id = "yH8HmCPz6H6E8Hinq";
let username = Meteor.user().username;
let query = { _id: id, messages: { $elemMatch: { isSeen: false, receiver: { $ne: username }}}};
Chat.update(query,{ $set: { "messages.$.isSeen": true }});
票数 0
EN

Stack Overflow用户

发布于 2016-11-20 17:42:04

你需要这样的东西:

代码语言:javascript
复制
Chat.update({
  'messages.isSeen': false,          // isSeen is false
  'messages.receiver': {             // Receiver is
     $ne: Meteor.user().username     // not equal to Meteor.user().username
  }
}, {
  'messages.$isSeen': true           // Set isSeen to true
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40706211

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档