小编kev*_*vin的帖子

Mongoose 从数组中拉取 ObjectId

我正在尝试做一个非常简单的操作,在 Mongo 数据库上使用 Mongoose 从数组中提取一个项目,如下所示:

User.update({ _id: fromUserId }, { $pull: { linkedUsers: [idToDelete] } });
Run Code Online (Sandbox Code Playgroud)

fromUserId&idToDelete都是对象 ID。

用户的架构是这样的:

var UserSchema = new Schema({
  groups: [],
  linkedUsers: [],
  name: { type: String, required: true, index: { unique: true } }
});
Run Code Online (Sandbox Code Playgroud)

linkedUsers 是一个只接收其他用户 ID 的数组。

我也试过这个:

User.findOne({ _id: fromUserId }, function(err, user) {
  user.linkedUsers.pull(idToDelete);
  user.save();
});
Run Code Online (Sandbox Code Playgroud)

但没有运气。

当我在不同位置控制数组的长度时,第二个选项似乎几乎可以工作,但在调用save和检查后,长度仍为 36:

 User.findOne({ _id: fromUserId }, function(err, user) {
    console.log(user.linkedUsers.length); // returns 36
    user.linkedUsers.pull(idToDelete);
    console.log(user.linkedUsers.length); // returns 35 …
Run Code Online (Sandbox Code Playgroud)

mongoose mongodb

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

动画的jQuery条件

我是 javascript 和 jQuery 的新手,所以这个问题可能看起来很愚蠢,但我找不到任何例子或文档。

我得到了这个功能,用于一些颜色动画滚动和滚动,效果很好:

$(".box_nav").hover(function(){
            jQuery(this).stop(true, false);
            $(this).animate({ backgroundColor: "#fff"}, 300 ); },
        function() {
            jQuery(this).stop(true, false);
            $(this).animate({ backgroundColor: "#000"}, 300 ); }
);
Run Code Online (Sandbox Code Playgroud)

事实上,如果我最近添加了一个也可以正常工作的样式表更改按钮:

$(".black-white").click(function(){
        $("link").attr("href", "<?php bloginfo("template_url"); ?>/css/styles-black-white.css");
        $(".wp-polls-loading").css({ display:"none"});
        return false;
    });

    $(".grey-white").click(function(){
        $("link").attr("href", "<?php bloginfo("template_url"); ?>/css/styles-grey-white.css");
        $(".wp-polls-loading").css({ display:"none"});
        return false;
    });
Run Code Online (Sandbox Code Playgroud)

关键是我想在我的翻转菜单上创建一个条件,以便我也可以切换它的颜色。

所以我尝试了一些这样的事情:

/////////////////////////////////////////////////////////////////////////////
    //Stylesheet change
    $(".black-white").click(function(){
        $("link").attr("href", "<?php bloginfo("template_url"); ?>/css/styles-black-white.css");
        $(".wp-polls-loading").css({ display:"none"});
        var tt = "black";
        return false;
    });

    $(".grey-white").click(function(){
        $("link").attr("href", "<?php bloginfo("template_url"); ?>/css/styles-grey-white.css");
        $(".wp-polls-loading").css({ display:"none"});
        var tt = "grey";
        return false;
    }); …
Run Code Online (Sandbox Code Playgroud)

javascript jquery if-statement conditional-statements

5
推荐指数
1
解决办法
1476
查看次数

移动终端到底部选项消失了吗?(VSCode)

刚刚将VSCode更新到1.29.0macOS上10.12.6,看起来这个选项将终端移动到VSCode的底部(然后再向右移动)就不复存在了.这是故意的吗?它是否移至特定设置?我正在使用这个功能.

这是一个截图:

在此输入图像描述

编辑:仍然可以按上下文菜单移动:

在此输入图像描述

visual-studio-code

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

Mongoose如何自动将_id添加到集合项中数组中的对象?

我有一个看起来像这样的 mongo 集合:

{
    name: string
    _id: (auto set)
    items: array[
        name: string
        url: string
        items: array[
            {
                name: string,
                url: string,
                items: []
            }
        ]
    ]
}
Run Code Online (Sandbox Code Playgroud)

我正在使用findByIdAndUpdate(使用 mongoose)将一个项目添加到 items 数组中:

Menu.findByIdAndUpdate(
    req.body.parentid, 
    {
        $push: {
            items: {
                name: req.body.item.name, 
                url: req.body.item.url,
                items: []
            }
        }
    },
    {
        safe: true, 
        upsert: true, 
        new: true
    },
    function(err, model) {
        if (err !== null) {
            console.log(err);
        }
    }
);
Run Code Online (Sandbox Code Playgroud)

这工作正常,但它不会_id向插入items数组的每个对象添加。我真的需要为每个人提供一个 id。

我猜它来自使用的方法,findByIdAndUpdate因为它看起来更像是更新而不是插入。如果我的想法是正确的。

使用 …

mongoose mongodb node.js

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