小编Nan*_*ncy的帖子

从mongodb中的数组中的所有元素中删除一个字段

我在MongoDB中有以下文档(2.4.5)

{
    "_id" : 235399,
    "casts" : {
        "crew" : [ 
            {
                "_id" : 1186343,
                "withBase" : true,
                "department" : "Directing",
                "job" : "Director",
                "name" : "Connie Rasinski"
            },
            {
                "_id" : 86342,
                "withBase" : true
            }
        ]
    },
    "likes" : 0,
    "rating" : 0,
    "rating_count" : 0,
    "release_date" : "1955-11-11"
}
Run Code Online (Sandbox Code Playgroud)

我想从casts.crew中的数组元素中删除withBase.

我试过这个

db.coll.update({_id:235399},{$unset: {  "casts.crew.withBase" : 1 } },false,true)
Run Code Online (Sandbox Code Playgroud)

没有改变.

并试过这个..

db.coll.update({_id:235399},{$unset: {  "casts.crew" : { $elemMatch: { "withBase": 1 } } } },false,true)
Run Code Online (Sandbox Code Playgroud)

它从文档中删除了整个工作人员阵列.

有人可以提供正确的查询吗?

arrays mongodb

43
推荐指数
3
解决办法
3万
查看次数

在linux中运行startup.sh时权限被拒绝

当我调用startup.sh时,我试图在linux中运行tomcat 6我在catalina.out中看到这个错误

/home/***/apache-tomcat-6.0.29/bin/catalina.sh: line 338: /home/***/jre/bin/java: Permission denied
Run Code Online (Sandbox Code Playgroud)

我怎样才能让它运行?请帮忙.

java linux tomcat

10
推荐指数
2
解决办法
4万
查看次数

如何在独立的MongoDB中查看oplog

我想看oplog所以我已经按照这里的建议启动了MongoDB

mongod --master --port 8888 --dbpath ...
Run Code Online (Sandbox Code Playgroud)

但是当我跑步的时候

>db.oplog.rs.find()
Run Code Online (Sandbox Code Playgroud)

它什么都不返回

我跑的时候

>db.oplog.rs.stats()
Run Code Online (Sandbox Code Playgroud)

返回错误

{
"ok" : 0,
"errmsg" : "ns not found"
}
Run Code Online (Sandbox Code Playgroud)

我也用'> use local'尝试了这些命令.我看到相同的结果.我打算用java oplog watcher API读取它.但是无法得到它.我错过了什么.怎么看oplog

mongodb

2
推荐指数
2
解决办法
6690
查看次数

标签 统计

mongodb ×2

arrays ×1

java ×1

linux ×1

tomcat ×1