我在用node.js和Mongo.db(我刚上Mongo).我有这样一份文件:

Tag : {
   name: string,
   videoIDs: array
}

其思想是,服务器接收类似JSON的

JSON: { 
    name: "sport",
    videoId: "34f54e34c"
}

有了这个JSON,它必须找到同名的标记,并判断数组中是否有videoId,如果没有,则将其插入array.

如何判断数组并附加数据?

推荐答案

在将元素追加到数组中之前,可以使用$addToSet运算符判断是否存在.

db.tags.update(
    {name: 'sport'},
    {$addToSet: { videoIDs: "34f54e34c" } }
);

在这个update语句示例中,mongoDB将找到与name == sport匹配的标记文档,然后判断videoIDs数组是否包含34f54e34c.如果不是,则将其附加到数组中.

$addToSet的详细用法请阅读here.

Mongodb相关问答推荐

如何使用ID数组对一个集合中的金额求和并更新另一个集合中的字段?

MongoDB:就地分组嵌套数组的元素

如何在MongoDB中通过限制和跳过查找项进行匹配

为什么这个查询可以在MongoDB中使用?

MongoDB $lookup 查找字段值数组

无法通过管理邮箱/密码身份验证注册/登录新用户帐户(类型错误:加载失败)

MongoDB 按日期时间字段查询 1h 间隔

可变用户 Select

MongoDB:如何将所有文档合并到聚合管道中的单个文档中

Mongoose 返回包含属性内任何位置的值的所有文档

Mongo C#忽略属性

MongoDB 1.6.5:如何重命名集合中的字段

将 mongoose 字符串模式类型默认值设为空白并使该字段可选

mongo php副本连接非常慢

将数据插入 MongoDB - 没有错误,没有插入

带有 jQ​​uery Ajax/JSON 前端的 MongoDB 或 CouchDB 中间件

MEAN 堆栈文件上传

用于嵌入式集合的 MongoDB 首选模式.文档与数组

移动 MongoDB 的数据文件夹?

全局初始化失败:BadValue Invalid or no user locale set.请确保正确设置 LANG 和/或 LC_* 环境变量