Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/456.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 孟高,;Node.js:如何获取数组中的对象?_Javascript_Node.js_Mongodb - Fatal编程技术网

Javascript 孟高,;Node.js:如何获取数组中的对象?

Javascript 孟高,;Node.js:如何获取数组中的对象?,javascript,node.js,mongodb,Javascript,Node.js,Mongodb,我只是想知道如何在一组对象中获得一个对象。我只需要那个东西 这是收藏: { "net" : "192.168.1.1/24", "_id" : ObjectId("531d1c2d857831021c48e3af"), "ips" : [ { "ips" : "192.168.1.1", "_id" : ObjectId("531d1c2d857831021c48e3b3") },

我只是想知道如何在一组对象中获得一个对象。我只需要那个东西

这是收藏:

{
    "net" : "192.168.1.1/24",
    "_id" : ObjectId("531d1c2d857831021c48e3af"),
    "ips" : [ 
        {
            "ips" : "192.168.1.1",
            "_id" : ObjectId("531d1c2d857831021c48e3b3")
        }, 
        {
            "ips" : "192.168.1.33",
            "_id" : ObjectId("531d1c2d857831021c48e3b2")
        }, 
        {
            "ips" : "192.168.1.38",
            "_id" : ObjectId("531d1c2d857831021c48e3b1")
        }, 
        {
            "ips" : "192.168.1.106",
            "_id" : ObjectId("531d1c2d857831021c48e3b0")
        }
    ],
    "__v" : 0
}
我需要一个ID为“531d1c2d857831021c48e3b0”的对象,这个句子是什么?我尝试使用db.nets.find({“ips.\u id”:ObjectId(“531d1c2d857831021c48e3b3”)}),但我得到了整个集合

多谢各位

编辑。通过代码,我收到以下信息:

db.nets.find(
      { 
     "_id": ObjectId("531d1c2d857831021c48e3af"),
     "ips._id": ObjectId("531d1c2d857831021c48e3b3") 
 },
 { "ips.$" : 1 }
 )

{
    "_id" : ObjectId("531d1c2d857831021c48e3af"),
    "ips" : [ 
        {}, 
        {}, 
        {}, 
        {}
    ]
}
但我想得到的是:

{
            "ips" : "192.168.1.33",
            "_id" : ObjectId("531d1c2d857831021c48e3b2")
        }
使用投影。运算符允许您仅选择阵列的匹配索引

 db.nets.find(
     { 
         "_id": ObjectId("531d1c2d857831021c48e3af"),
         "ips._id": ObjectId("531d1c2d857831021c48e3b3") 
     },
     { "ips.$" : 1 }
 )
它给出了这样的回答:

{
    "_id" : ObjectId("531d1c2d857831021c48e3af"),
    "ips" : [
            {
                    "ips" : "192.168.1.1",
                    "_id" : ObjectId("531d1c2d857831021c48e3b3")
            }
    ]
}

它不是“整个集合”,而是“整个文档”,在这个文档中,除非您使用“投影”过滤字段,否则默认情况下您将获得

@user2976034我想你只是想在评论中发布多行回复。它不起作用。当然,我会测试一些东西,是的,这只会返回一个数组元素。这就是你想要的,不是吗?你好,尼尔。对不起,我没有完全写下最后的评论。我想写:谢谢你对$operator的解释,我不知道(我是一个完全的新手)。用你写的代码,我没有收到我想要的。我想我解释得不对。检查第一篇文章,看看我收到了什么,如果可能的话,我想收到什么。非常感谢您的时间。@user2976034,正如我所解释的。我认为您的结果是因为您没有筛选实际包含此数组成员的文档。你需要这么做。嗨,尼尔,我做了一个截图,因为它给我的结果不是你!您添加的响应在当前版本中不可用。您正在运行哪个版本的MongoDB?或者您是否确实在未指定文档的主
\u id
的情况下执行了find或findOne。答案现在稍加修改就更清楚了。我使用的是MongoDB版本:2.0.6。我在控制台上查了一下,写着“mongo”。是啊!!!!!!这是版本!!!现在我有了2.4.9版本,它工作得非常好。非常感谢你,芒奇!!