【问题标题】:check if value exists in array field in mongodb检查值是否存在于 mongodb 的数组字段中
【发布时间】:2016-09-09 05:06:31
【问题描述】:

我想检查用户 id 是否存在于 mongodb 的数组字段中(使用流星)

db.posts.find().pretty()

 {
        "_id" : "hT3ezqEyTaiihoh6Z",
        "body" : "hey\n",
        "authorId" : "AyJo5nf2Lkdqd6aRh",
        "createdAt" : ISODate("2016-05-13T06:19:34.726Z"),
        "updatedAt" : ISODate("2016-05-13T06:19:34.726Z"),
        "likecount" : 0,
        "already_voted" : [ ] }

 db.posts.find( { _id:"hT3ezqEyTaiihoh6Z"},{ already_voted: { $in : ["AyJo5nf2Lkdqd6aRh"]} }).count()

 1

它给出了计数值 1 ,而我期望它是 0

【问题讨论】:

    标签: mongodb meteor


    【解决方案1】:

    你的逻辑很好。只是语法错误。

    db.posts
      .find({
        _id: "hT3ezqEyTaiihoh6Z",
        already_voted: { $in: ["AyJo5nf2Lkdqd6aRh"] },
      })
      .count();
    

    这应该可行。

    【讨论】:

      【解决方案2】:

      你可以简单地使用 count 方法。不需要像 Find 和 count 这样的两个操作。

      db.posts
        .count({
          _id: "hT3ezqEyTaiihoh6Z",
          already_voted: { $in: ["AyJo5nf2Lkdqd6aRh"] }
        });
      

      【讨论】:

        猜你喜欢
        • 2019-08-02
        • 2016-10-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-12-24
        • 1970-01-01
        • 2013-11-20
        相关资源
        最近更新 更多