简体   繁体   English

检查mongodb中的数组字段中是否存在值

[英]check if value exists in array field in mongodb

I want to check if user id exists inside an array field of mongodb (using meteor)我想检查用户 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

It gives count value 1 , where as I am expecting it to be 0 .它给出计数值1 ,而我期望它是0

Your logic is fine.你的逻辑没问题。 Just the syntax is wrong.只是语法错误。

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

This should work.这应该工作。

You can just simply use count method.您可以简单地使用计数方法。 Don't need to use two operation like Find and then count.不需要使用像查找然后计数这样的两个操作。

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM