- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我想更新我的 JSON 中的一个字段,它是一个包含元素的数组(很简单,嗯?)。
我想将 userid
添加到 reportedUsersIDs
数组。
我正在运行的查询(通过 POSTMAN):
http://localhost:3000/api/listing/myStreet/1/1/addReportedUser/564b343fbc2d4310156c6bf9/5671a8f694745bfce5bf6ecf
我检查了数据库中的两个 ID 和列表本身也存在(街道 = myStreet,buildingNumber = 1,apartmentNumber = 1)。routes.js
中的代码是:
app.put('/api/listing/:street/:buildingNumber/:apartmentNumber/addReportedUser/:userid/:listingid', function (req, res) {
var listingToUpdate = req.params.listingid;
var idToAdd = req.params.userid;
Listing.update({_id: ObjectId(listingToUpdate)},
{$addToSet: {reportedUsersIDs: ObjectId(idToAdd)}}
, function (err, listing) {
if (err) {
res.send("There was a problem adding the reportedUserID to the listing" + err);
}
else {
console.log("Success adding reportedUserID to listing!");
res.json(listing);
}
})
});
返回成功,但 JSON 保持不变。
相关数据:
我要更改的列表架构:
var listingSchema = new Schema({
street : String,
buildingNumber : Number,
apartmentNumber : Number,
reportedUsersIDs: [String]
});
还有我的用户模式:
var userSchema = new Schema({
local : {
email : String,
password : String
},
name : String
});
为什么我的 JSON 没有更新?
最佳答案
由于 reportedUsersIDs
在您的架构中声明为 String
数组,您也应该将它们添加为字符串,而不是 ObjectId
:
{ $addToSet : { reportedUsersIDs : idToAdd } }
或者,您可以更改架构,使其成为 ObjectId
的数组:
reportedUsersIDs : [ Schema.Types.ObjectId ]
关于javascript - NodeJS 无法在 MongoDB 中添加 ToSet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34320312/
为什么此代码不起作用: scala> List('a', 'b', 'c').toSet.subsets.foreach(e => println(e)) :8: error: missing par
试图从字符列表中生成映射到其频率的唯一字符列表 - 例如就像是: List('a','b','a') -> List(('a',2), ('b',1)) 所以,只是在控制台中乱搞,这有效: val l
我正在查看 jdk-8 下的 Collectors.toSet 实现并且几乎看到了显而易见的事情: public static Collector> toSet() { return ne
是否有更惯用的方法将嵌套的序列序列更改为嵌套的集合? def toNestedSet[T](tsss: Seq[Seq[Seq[T]]]): Set[Set[Set[T]]] = tsss.m
取下面一行示例代码: Set someSet = someColletion.stream().map(p -> p.toString()).collect(Collectors.toSet());
为什么类型推断在这里失败? scala> val xs = List(1, 2, 3, 3) xs: List[Int] = List(1, 2, 3, 3) scala> xs.toSet map(
在scala中,为什么toSet()方法混淆了集合中元素的顺序(ListBuffer)? 我可以使用哪个集合来确保每个元素的唯一性并保持其原始顺序? 最佳答案 因为set抽象,是 traversabl
我想根据特定键的属性创建一个值集合。这些方法是这样工作的: Collection getValueOfKey(final Collection input, final String key) {
我想更新我的 JSON 中的一个字段,它是一个包含元素的数组(很简单,嗯?)。 我想将 userid 添加到 reportedUsersIDs数组。 我正在运行的查询(通过 POSTMAN): htt
这个问题在这里已经有了答案: What is the default Set/List implementation with Collectors in Java 8 Stream API? (1
Set接口(interface)不 promise 实现是否允许 null 元素。每个实现都应该在其文档中声明这一点。 Collectors.toSet() promise 返回 Set 的实现,但明
我使用的是 Java 8,第 30 行的代码出现以下错误 The method flatMapping(( dish) -> {}, toSet()) is undefined for the typ
Javadoc 说 Returns a Collector that accumulates the input elements into a new Set. There are no guara
将流的元素收集到集合中时,在流上指定 .distinct() 是否有任何优点(或缺点)?例如: return items.stream().map(...).distinct().collect(to
有人可以解释为什么会发生以下情况吗?我的意思是如果某物的类型是 String ,然后我希望运行 head在上面。但是Set("ab").head有效,而 List("ab").toSet.head.h
为什么类型推断在这里失败? scala> val xs = List(1, 2, 3, 3) xs: List[Int] = List(1, 2, 3, 3) scala> xs.toSet map(
当我尝试使用here is an example on web Hive.box('box_name')。listenable()时,如果没有键,则会发生错误; ════════ Exception
这是 java.util.stream.Collectors 类的 toSet() 方法的实现: public static Collector> toSet() { return new
如果我有一个对象列表(~200 个元素),只有几个唯一对象(~20 个元素)。 我只想拥有独特的值(value)。之间list.stream().collect(Collectors.toSet())
我是一名优秀的程序员,十分优秀!